Udostępnij przez


Tworzenie procesu treningowego przy użyciu API do dostrajania modeli bazowych

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej w następujących regionach: centralus, , eastuseastus2, northcentralusi westus.

W tym artykule opisano, jak utworzyć i skonfigurować przebieg treningowy przy użyciu dostrajania modelu bazowego (obecnie część trenowania modeli w ramach Mosaic AI) oraz opisano wszystkie parametry używane podczas wywołania interfejsu API. Możesz również utworzyć uruchomienie przy użyciu interfejsu użytkownika. Aby uzyskać instrukcje, zobacz Create a training run using the Foundation Model Fine-tuning UI (Tworzenie przebiegu trenowania przy użyciu interfejsu użytkownika dostrajania modelu podstawowego).

Wymagania

Zobacz Wymagania.

Tworzenie sesji szkoleniowej

Aby programowo utworzyć przebiegi trenowania, użyj create() funkcji . Ta funkcja trenuje model w podanym zestawie danych i zapisuje wytrenowany model na potrzeby wnioskowania.

Wymagane dane wejściowe to model, który chcesz wytrenować, lokalizację zestawu danych treningowych i miejsce rejestrowania modelu. Istnieją również opcjonalne parametry, które umożliwiają przeprowadzenie oceny i zmianę hiperparametrów przebiegu.

Po zakończeniu przebiegu ukończony przebieg oraz końcowy punkt kontrolny są zapisywane, model jest klonowany, a ten klon jest zarejestrowany w Unity Catalog jako wersja modelu do inferencji.

Model z ukończonego przebiegu, a nie sklonowana wersja modelu w Unity Catalog, jest zapisywany w MLflow. Punkty kontrolne mogą służyć do dalszego dostrajania zadań.

Zobacz Konfigurację przebiegu trenowania, aby uzyskać szczegółowe informacje o argumentach dla funkcji create().

from databricks.model_training import foundation_model as fm

run = fm.create(
  model='meta-llama/Llama-3.2-3B-Instruct',
  train_data_path='dbfs:/Volumes/main/mydirectory/ift/train.jsonl', # UC Volume with JSONL formatted data
  # Public HF dataset is also supported
  # train_data_path='mosaicml/dolly_hhrlhf/train'
  register_to='main.mydirectory', # UC catalog and schema to register the model to
)

Konfigurowanie przebiegu trenowania

Poniższa tabela zawiera podsumowanie parametrów funkcji foundation_model.create().

Parametr Wymagane Typ opis
model x Str Nazwa modelu do użycia. Zobacz Obsługiwane modele.
train_data_path x Str Lokalizacja danych treningowych. Może to być lokalizacja w katalogu unity (<catalog>.<schema>.<table> lub dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonl) lub zestaw danych HuggingFace.
W przypadku INSTRUCTION_FINETUNE, dane powinny być sformatowane tak, aby każdy wiersz zawierał pole prompt i response.
W przypadku CONTINUED_PRETRAIN jest to folder plików .txt. Zobacz Przygotowanie danych dla doskonalenia modelu bazowego dla akceptowanych formatów danych oraz Zalecany rozmiar danych dla trenowania modelu dla zaleceń dotyczących rozmiaru danych.
register_to x Str Katalog i schemat Unity Catalog (<catalog>.<schema> lub <catalog>.<schema>.<custom-name>), w którym model jest zarejestrowany po przeszkoleniu w celu łatwego wdrożenia. Jeśli custom-name nie zostanie podany, domyślnie użyta zostanie nazwa uruchomienia.
data_prep_cluster_id Str Identyfikator klastra do użycia na potrzeby przetwarzania danych w Spark. Jest to wymagane w przypadku zadań szkoleniowych z instrukcją, w których dane szkoleniowe znajdują się w tabeli Delta. Aby uzyskać informacje na temat znajdowania identyfikatora klastra, zobacz Pobierz identyfikator klastra.
experiment_path Str Ścieżka do eksperymentu MLflow, w którym zapisywane są wyniki trenowania (metryki i punkty kontrolne). Wartość domyślna to nazwa przebiegu w osobistym obszarze roboczym użytkownika (to jest /Users/<username>/<run_name>).
task_type Str Typ zadania do uruchomienia. Może to być CHAT_COMPLETION (wartość domyślna), CONTINUED_PRETRAINlub INSTRUCTION_FINETUNE.
eval_data_path Str Zdalna lokalizacja danych oceny (jeśli istnieje). Musi być zgodny z tym samym formatem co train_data_path.
eval_prompts Lista[str] Lista ciągów monitów do generowania odpowiedzi podczas oceny. Wartość domyślna to None (nie generuj monitów). Wyniki są rejestrowane w eksperymencie za każdym razem, gdy model jest sprawdzany. W każdym punkcie kontrolnym modelu są wykonywane generacje z następującymi parametrami generowania: max_new_tokens: 100, temperature: 1, top_k: 50, top_p: 0.95, do_sample: true.
custom_weights_path Str Zdalna lokalizacja niestandardowego punktu kontrolnego modelu na potrzeby szkolenia. Wartość domyślna to None, co oznacza, że proces rozpoczyna się od oryginalnych wstępnie wytrenowanych wag wybranego modelu. Jeśli podano wagi niestandardowe, te wagi są używane zamiast oryginalnych wstępnie wytrenowanych wag modelu. Te wagi musiały zostać stworzone przez API dostrajania i pasować do architektury określonego model. Zobacz Build on custom model weights (Tworzenie na niestandardowych wagach modelu).
UWAGA: Jeśli wytrenowałeś model przed 26.03.2025 r., nie będziesz już w stanie kontynuować treningu z użyciem tamtych punktów kontrolnych modelu. Wszystkie wcześniej ukończone przebiegi trenowania mogą być nadal obsługiwane z przydzieloną przepustowością bez problemu.
training_duration Str Łączny czas trwania biegu. Wartość domyślna to jedna epoka lub 1ep. Można określić w epokach (10ep) lub tokenach (1000000tok).
learning_rate Str Wskaźnik uczenia na potrzeby trenowania modelu. Wszystkie modele są trenowane przy użyciu optymalizatora AdamW, z rozgrzewką szybkości uczenia. Domyślny współczynnik uczenia może się różnić w zależności od modelu. Zalecamy uruchomienie przeglądu hiperparametrów, wypróbowania różnych wskaźników uczenia się i czasów trwania treningu, aby uzyskać modele najwyższej jakości.
context_length Str Maksymalna długość sekwencji próbki danych. Służy do obcinania wszelkich danych, które są zbyt długie i spakować krótsze sekwencje razem w celu zapewnienia wydajności.
Wartość domyślna to 8192 tokeny lub maksymalna długość kontekstu dla podanego modelu, w zależności od tego, która z nich jest niższa. Tego parametru można użyć do skonfigurowania długości kontekstu, ale konfigurowanie poza maksymalną długością kontekstu każdego modelu nie jest obsługiwane. Zobacz Obsługiwane modele , aby uzyskać maksymalną obsługiwaną długość kontekstu każdego modelu.
validate_inputs logiczny Czy należy zweryfikować dostęp do ścieżek wejściowych przed przesłaniem zadania szkoleniowego. Wartość domyślna to True.

Tworzenie niestandardowych wag modelu

UWAGA: Jeśli wytrenowałeś model przed 26.03.2025 r., nie będziesz już w stanie kontynuować treningu z użyciem tamtych punktów kontrolnych modelu. Wszystkie wcześniej ukończone przebiegi trenowania mogą być nadal obsługiwane z przydzieloną przepustowością bez problemu.

Dostrajanie modelu bazowego obsługuje dodawanie niestandardowych wag przy użyciu opcjonalnego parametru custom_weights_path do trenowania i dalszego dostosowywania modelu.

Aby rozpocząć, ustaw custom_weights_path ścieżkę punktu kontrolnego z poprzedniego przebiegu trenowania interfejsu API dostrajania. Ścieżki punktów kontrolnych można znaleźć na karcie Artefakty z poprzedniego przebiegu MLflow. Nazwa folderu punktu kontrolnego odpowiada partii i epoce przetwarzania określonej migawki, na przykład ep29-ba30/.

Zakładka Artefakty dla poprzedniego przebiegu MLflow

  • Aby udostępnić najnowszy punkt kontrolny z poprzedniego przebiegu, ustaw custom_weights_path na punkt kontrolny wygenerowany przez API do dostrajania. Na przykład custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/latest-sharded-rank0.symlink.
  • Aby podać wcześniejszy punkt kontrolny, ustaw custom_weights_path jako ścieżkę do folderu zawierającego pliki .distcp, które odpowiadają żądanemu punktowi kontrolnemu, na przykład custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/ep#-ba#.

Następnie zaktualizuj parametr model, aby był zgodny z modelem podstawowym punktu kontrolnego przekazanego do custom_weights_path.

W poniższym przykładzie ift-meta-llama-3-1-70b-instruct-ohugkq jest to wcześniejszy przebieg, który dostraja meta-llama/Meta-Llama-3.1-70B. Żeby dostosować najnowszy punkt kontrolny z ift-meta-llama-3-1-70b-instruct-ohugkq, ustaw zmienne model i custom_weights_path w następujący sposób:

from databricks.model_training import foundation_model as fm

run = fm.create(
model = 'meta-llama/Meta-Llama-3.1-70B'
custom_weights_path = 'dbfs:/databricks/mlflow-tracking/2948323364469837/d4cd1fcac71b4fb4ae42878cb81d8def/artifacts/ift-meta-llama-3-1-70b-instruct-ohugkq/checkpoints/latest-sharded-rank0.symlink'
... ## other parameters for your fine-tuning run

)

Zobacz Konfigurowanie przebiegu trenowania w celu skonfigurowania innych parametrów w przebiegu dostrajania.

Uzyskiwanie identyfikatora klastra

Aby pobrać identyfikator klastra:

  1. Na lewym panelu nawigacyjnym obszaru roboczego usługi Databricks kliknij pozycję Komputery.

  2. W tabeli kliknij nazwę klastra.

  3. Kliknij przycisk "Więcej" w prawym górnym rogu i wybierz z menu rozwijanego opcję "Wyświetl JSON" .

  4. Zostanie wyświetlony plik JSON klastra. Skopiuj identyfikator klastra, który jest pierwszym wierszem w pliku.

    identyfikator klastra

Uzyskaj status przebiegu

Postęp przebiegu można śledzić na stronie "Eksperyment" w interfejsie użytkownika Databricks lub za pomocą polecenia interfejsu API get_events(). Aby uzyskać szczegółowe informacje, zobacz Wyświetlanie przebiegów dostrajania modelu podstawowego, zarządzanie nimi i analizowanie ich.

Przykładowe dane wyjściowe z :get_events()

sprawdź stan uruchomienia za pomocą API

Przykładowe szczegóły przebiegu na stronie Eksperyment:

Pobierz status uruchomienia z interfejsu użytkownika eksperymentów

Następne kroki

Po zakończeniu przebiegu trenowania możesz przejrzeć metryki w środowisku MLflow i wdrożyć model na potrzeby wnioskowania. Zobacz kroki od 5 do 7 w Samouczku: Tworzenie i wdrażanie przebiegu dostrajania modelu podstawowego.

Zobacz przykładowy notatnik dotyczący dostrajania instrukcji: rozpoznawanie nazwanych jednostek, aby zapoznać się z przykładem, który przeprowadzi przez proces przygotowywania danych, konfigurację dostrajania przebiegu trenowania oraz wdrażanie.

Przykład notesu

W poniższym notatniku przedstawiono przykład generowania danych syntetycznych przy użyciu modelu Meta Llama 3.1 405B instruktażowego oraz wykorzystanie tych danych do dostrojenia modelu.

Generowanie danych syntetycznych przy użyciu notatnika Llama 3.1 405B Instruct

Pobierz notes

Dodatkowe zasoby