Estude para editar um 7b 7b de qlora usando axlotl com treinamento eficaz de LLM
Inteligência artificial

Estude para editar um 7b 7b de qlora usando axlotl com treinamento eficaz de LLM


Nesta lição, mostramos que o trabalho de trabalho duro de 7b usando a qlora com AxLotlExibe como lidar com recursos limitados da GPU enquanto atua na personalização de novos trabalhos. Incluímos axlotl, criamos um pequeno conjunto de dados, por exemplo, preparamos um hyperpareter LORA especial, usamos um bom processo de layout e testamos a eficácia do modelo de resultado.

Etapa 1: Prepare o ambiente e insira axlototl

# 1. Check GPU availability
!nvidia-smi


# 2. Install git-lfs (for handling large model files)
!sudo apt-get -y install git-lfs
!git lfs install


# 3. Clone Axolotl and install from source
!git clone 
%cd axolotl
!pip install -e .


# (Optional) If you need a specific PyTorch version, install it BEFORE Axolotl:
# !pip install torch==2.0.1+cu118 --extra-index-url 


# Return to /content directory
%cd /content

Primeiro, analisamos o que está disponível para qualquer GPU e quanta memória está disponível. Em seguida, instalamos o GIT LFS para grandes arquivos de modelos (como 6b 7b) que não são tratados corretamente. Depois disso, combinamos a acomodação estatil do Github e o adicionamos ao modo “relevante”, o que nos permite chamar suas instruções de qualquer lugar. A fase opcional permite que você insira uma versão específica do pytroch quando necessário. Por fim, voltamos à bolsa / conteúdo para editar os seguintes arquivos e maneiras interessantes.

Etapa 2: Crie um pequeno conjunto de dados de amostra e configuração QLORA de Marti 7b

import os


# Create a small JSONL dataset
os.makedirs("data", exist_ok=True)
with open("data/sample_instructions.jsonl", "w") as f:
    f.write('{"instruction": "Explain quantum computing in simple terms.", "input": "", "output": "Quantum computing uses qubits..."}n')
    f.write('{"instruction": "What is the capital of France?", "input": "", "output": "The capital of France is Paris."}n')


# Write a QLoRA config for Mistral 7B
config_text = """
base_model: mistralai/mistral-7b-v0.1
tokenizer: mistralai/mistral-7b-v0.1


# We'll use QLoRA to minimize memory usage
train_type: qlora
bits: 4
double_quant: true
quant_type: nf4


lora_r: 8
lora_alpha: 16
lora_dropout: 0.05
target_modules:
  - q_proj
  - k_proj
  - v_proj


data:
  datasets:
    - path: /content/data/sample_instructions.jsonl
  val_set_size: 0
  max_seq_length: 512
  cutoff_len: 512


training_arguments:
  output_dir: /content/mistral-7b-qlora-output
  num_train_epochs: 1
  per_device_train_batch_size: 1
  gradient_accumulation_steps: 4
  learning_rate: 0.0002
  fp16: true
  logging_steps: 10
  save_strategy: "epoch"
  evaluation_strategy: "no"


wandb:
  enabled: false
"""


with open("qlora_mistral_7b.yml", "w") as f:
    f.write(config_text)


print("Dataset and QLoRA config created.")

Aqui, criamos um pequeno conjunto de dados de JSON para apontar para o dicionário YAML apontando para o modelo Mistral 7B, definimos os períodos de boa lembrança da QLORA e explicamos hiperparadores de treinamento como tamanho do lote, classificação de aprendizado e duração da ordem e um comprimento de comprimento de cronologia. Também dizemos as configurações do LORA, como o abandono e o sinal e, finalmente, mantemos este programa como QLORA_MISTL_7B.YML.

Etapa 3: Finse-tune com um bartl

# This will download Mistral 7B (~13 GB) and start fine-tuning with QLoRA.
# If you encounter OOM (Out Of Memory) errors, reduce max_seq_length or LoRA rank.


!axolotl --config /content/qlora_mistral_7b.yml

Aqui, o ansoordl baixará automaticamente e buscando os desagradáveis ​​pesos 7B (um arquivo grande) e inicia o melhor plano de Qlora. O modelo é dividido em 4 precisão, o que ajuda a reduzir o uso da memória da GPU. Você verá os registros de treinamento que ilustram o progresso, incluindo perdas de treinamento, passo a passo.

Etapa 4: Explore um modelo bem preparado

import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer


# Load the base Mistral 7B model
base_model_path = "mistralai/mistral-7b-v0.1"   #First establish access using your user account on HF then run this part
output_dir = "/content/mistral-7b-qlora-output"


print("nLoading base model and tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(
    base_model_path,
    trust_remote_code=True
)
base_model = AutoModelForCausalLM.from_pretrained(
    base_model_path,
    device_map="auto",
    torch_dtype=torch.float16,
    trust_remote_code=True
)


print("nLoading QLoRA adapter...")
model = PeftModel.from_pretrained(
    base_model,
    output_dir,
    device_map="auto",
    torch_dtype=torch.float16
)
model.eval()


# Example prompt
prompt = "What are the main differences between classical and quantum computing?"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")


print("nGenerating response...")
with torch.no_grad():
    outputs = model.generate(**inputs, max_new_tokens=128)


response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("n=== Model Output ===")
print(response)

Finalmente, carregamos o modelo 7B básico e usamos os instrumentos Lora-New Lora. Construímos rapidamente assim que a diferença entre computadores clássicos e quânticos, nos convertemos nos tokens e produzimos feedback usando um modelo bem preparado. Isso prova que nosso treinamento na QLORA começou a trabalhar e que podemos mover com sucesso o modelo atualizado.

Instantâneo de modelos suportados com analatl

Em conclusão, essas etapas acima mostraram como corrigir o ambiente, configurar um pequeno conjunto de dados e executar uma sessão especial de ajuste LORA e executar o melhor ajuste de ajuste de ajuste da Qlora. Essa abordagem indica um processo de treinamento bem eficiente, preparado para as áreas limitadas. Agora você pode cultivar o conjunto de dados, alterar hiperpares ou testar com abertura de código aberto para continuar analisando e atualizando seu lindo tubo.


Baixar notebook Colab aqui. Todo o crédito deste estudo é pesquisado para este projeto. Além disso, não se esqueça de seguir Sane e junte -se ao nosso Estação de telégrafo incluindo LinkedIn grtópico. Não se esqueça de se juntar ao nosso 75k + ml subreddit.

🚨 O Marktechpost está gritando para as empresas / inicialização / grupos cooperarem com as próximas revistas da IA ​​a seguinte 'fonte AI em produção' e 'e' Agentic AI '.


O Asphazzaq é um Markteach Media Inc. De acordo com um negócio e desenvolvedor de visualização, a ASIFI está comprometida em integrar uma boa inteligência social. Sua última tentativa é lançada pelo lançamento do Plano de Química para uma Inteligência, Marktechpost, uma prática íntima devastadora de um aprendizado de máquina e problemas de aprendizado profundo que são de forma clara e facilmente compreendida. A plataforma está aderindo a mais de dois milhões de visitas à lua, indicando sua popularidade entre o público.

✅ [Recommended] Junte -se ao nosso canal de telégrafo



Source link

Você também pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *