찾다
기술 주변기기일체 포함미세 조정 라마 3.2 3B 헝겊 분석 - 분석 Vidhya

소규모 언어 모델 (SLM)은 AI에 큰 영향을 미치고 있습니다. 그들은 효율적이고 비용 효율적으로 강력한 성능을 제공합니다. 눈에 띄는 예 중 하나는 Llama 3.2 3B입니다. RAG ( Rectrive-Augmented Generation ) 작업에서 예외적으로 잘 수행되어 계산 비용 및 메모리 사용량을 절감하면서 높은 정확도를 유지합니다. 이 기사는 LLAMA 3.2 3B 모델을 미세 조정하는 방법을 살펴 봅니다. 소규모 모델이 RAG 작업에서 어떻게 뛰어난 방법을 배우고 Compact AI 솔루션이 달성 할 수있는 것의 경계를 넓 힙니다.

목차

  • llama 3.2 3b는 무엇입니까?
  • Finetuning Llama 3.2 3B
  • 로라
  • 라이브러리가 필요합니다
  • 라이브러리를 가져옵니다
  • 모델과 토 케이저를 초기화하십시오
  • PEFT 모델을 초기화하십시오
  • 데이터 처리
  • 트레이너 매개 변수 설정
  • 모델을 미세 조정합니다
  • 모델을 테스트하고 저장하십시오
  • 결론
  • 자주 묻는 질문

llama 3.2 3b는 무엇입니까?

Meta가 개발 한 LLAMA 3.2 3B 모델은 질문 답변, 요약 및 대화 시스템과 같은 작업을 위해 30 억 매개 변수를 갖춘 다국어 SLM입니다. 업계 벤치 마크에서 많은 오픈 소스 모델을 능가하고 다양한 언어를 지원합니다. 다양한 크기로 제공되는 LLAMA 3.2는 효율적인 계산 성능을 제공하며 모바일 및 에지 환경에서 더 빠르고 메모리 효율적인 배포를위한 양자화 된 버전을 포함합니다.

미세 조정 라마 3.2 3B 헝겊 분석 - 분석 Vidhya

또한 읽기 : 상위 13 개 소규모 언어 모델 (SLM)

Finetuning Llama 3.2 3B

미세 조정은 SLM 또는 LLM을 의료, 법률 또는 RAG 응용 프로그램과 같은 특정 도메인 또는 작업에 적용하는 데 필수적입니다. 사전 훈련을 통해 언어 모델은 다양한 주제에서 텍스트를 생성 할 수 있지만 미세 조정은 도메인 별 또는 작업 별 데이터에 대한 모델을 관련성과 성능을 향상시킵니다. 모든 매개 변수를 미세 조정하는 높은 계산 비용을 해결하기 위해 PEFT (Parameter Efficient Fine-Tuning)와 같은 기술은 모델 매개 변수의 하위 집합 만 훈련하는 데 중점을두고 성능을 유지하면서 리소스 사용량을 최적화합니다.

로라

이러한 PEFT 방법 중 하나는 낮은 순위 적응 (LORA)입니다.

LORA에서는 SLM 또는 LLM의 중량 매트릭스가 두 개의 저급 매트릭스의 생성물로 분해됩니다.

 w = wa * wb

W에 M 행과 N 열이 있으면 M 행 및 R 열이있는 WA로 분해되고 R 행 및 N 열이있는 WB가 분해 될 수 있습니다. 여기서 r은 m 또는 n보다 훨씬 작습니다. 따라서 M*N 값을 교육하는 대신 r*(Mn) 값 만 훈련 할 수 있습니다. r을 우리가 선택할 수있는 과수기 동물 인 순위라고합니다.

 def lora_linear (x) :<br> h = x @ w # 일반 선형<br> h = scale * (x @ w_a @ w_b) # 저급 업데이트<br> 반환 h

체크 아웃 : Lora 및 Qlora를 사용한 대형 언어 모델의 매개 변수 효율적인 미세 조정

LLAMA 3.2 3B 모델에서 LORA를 구현합시다.

라이브러리가 필요합니다

  • 풀다 - 2024.12.9
  • 데이터 세트 - 3.1.0

위의 나무 늘보 버전을 설치하면 호환 Pytorch, Transformers 및 Nvidia GPU 라이브러리도 설치됩니다. Google Colab을 사용하여 GPU에 액세스 할 수 있습니다.

지금 구현을 봅시다!

라이브러리를 가져옵니다

 Unsloth import에서 fastlanguagemodel, is_bfloat16_supported, train_on_responses_only

데이터 세트에서 import load_dataset, dataset

trl import sfttrainer, apply_chat_template에서

Transformers에서 Training Arguments, DatacollatorforSeq2Seq, TextStreamer에서

토치 수입

모델과 토 케이저를 초기화하십시오

 max_seq_length = 2048 
dtype = none # 자동 감지용 없음.
load_in_4bit = true # 4 비트 양자화를 사용하여 메모리 사용을 줄입니다. 거짓일 수 있습니다.

모델, Tokenizer = FastLanguagemodel.from_pretrained (
	model_name = "Unsloth/llama-3.2-3B-instruct",
	max_seq_length = max_seq_length,
	dtype = dtype,
	load_in_4bit = load_in_4bit,
	# TOKEN = "HF _...", # Meta-Llama/llama-3.2-11B와 같은 게이트 모델을 사용하는 경우 # 사용
))

Unsloth가 지원하는 다른 모델의 경우이 문서를 참조 할 수 있습니다.

PEFT 모델을 초기화하십시오

 model = fastlanguagemodel.get_peft_model (
	모델,
	r = 16,
	target_modules = [ "q_proj", "k_proj", "v_proj", "o_proj",
                  	"gate_proj", "up_proj", "down_proj",],
	lora_alpha = 16,
	lora_dropout = 0, 
	바이어스 = "없음",
	use_gradient_checkpointing = "Unsloth",
	random_state = 42,
	use_rslora = false, 
	loftq_config = 없음,
))

각 매개 변수에 대한 설명

  • R : Lora의 계급; 값이 높을수록 정확도가 향상되지만 더 많은 메모리를 사용합니다 (제안 : 8–128).
  • Target_Modules : 미세 조정 모듈; 더 나은 결과를 위해 모든 것을 포함하십시오
  • lora_alpha : 스케일링 계수; 일반적으로 순위 r의 두 배나 동일합니다.
  • LORA_DROPOUT : 드롭 아웃 속도; 최적화되고 빠른 교육을 위해 0으로 설정하십시오.
  • 바이어스 : 바이어스 유형; "없음"은 속도와 최소한 과적으로 최적화되어 있습니다.
  • use_gradient_checkpointing : 장기 텍스트 교육을위한 메모리를 줄입니다. "Unsloth"가 적극 권장됩니다.
  • Random_state : 재현 가능한 결과를 보장하는 결정 론적 실행을위한 시드 (예 : 42).
  • use_rslora : 알파 선택을 자동화합니다. 순위 안정화 된 LORA에 유용합니다.
  • loftq_config : 메모리 집약적이지만 더 나은 정확도를 위해 상위 R 단일 벡터로 LORA를 초기화합니다.

데이터 처리

우리는 Rag 데이터를 사용하여 Finetune을 사용합니다. Huggingface에서 데이터를 다운로드하십시오.

 DataSet = load_dataset ( "Neural-Bridge/Rag-Dataset-1200", Split = "Train")

데이터 세트에는 다음과 같이 세 가지 키가 있습니다.

DataSet ({feature : [ 'context', 'Question', 'Answer'], num_rows : 960})

데이터는 언어 모델에 따라 특정 형식이어야합니다. 자세한 내용은 여기를 참조하십시오.

따라서 데이터를 필요한 형식으로 변환하겠습니다.

 def convert_dataset_to_dict (dataset) :
    dataSet_dict = {
        "즉각적인": [],
        "완성": []
    }

    데이터 세트의 행 :
        user_content = f "context : {row [ 'context']} \ nquestion : {row [ 'Question']}"
        Assistant_Content = Row [ 'Answer']

        DataSet_dict [ "Prompt"]. Append ([[[
            { "역할": "사용자", "컨텐츠": user_content}
        ])))
        DataSet_dict [ "완료"]. Append ([[[
            { "역할": "Assistant", "Content": Assistant_Content}
        ])))
    DataSet_dict를 반환합니다
    
    
converted_data = convert_dataset_to_dict (dataSet)
DataSet = dataset.from_dict (converted_data)
DataSet = dataset.map (apply_chat_template, fn_kwargs = { "Tokenizer": Tokenizer})

데이터 세트 메시지는 다음과 같습니다.

미세 조정 라마 3.2 3B 헝겊 분석 - 분석 Vidhya

트레이너 매개 변수 설정

SLM을 미세 조정하기 위해 트레이너를 초기화 할 수 있습니다.

 트레이너 = sfttrainer (
	모델 = 모델,
	Tokenizer = Tokenizer,
	Train_Dataset = 데이터 세트,
	max_seq_length = max_seq_length,
	data_collator = DataCollatorforSeq2Seq (Tokenizer = Tokenizer),
	DataSet_num_Proc = 2,
	Packing = False, #은 짧은 시퀀스를 위해 5 배 더 빠르게 훈련 할 수 있습니다.
	args = training arguments (
    	per_device_train_batch_size = 2,
    	gradient_accumulation_steps = 4,
    	Warmup_steps = 5,
    	# num_train_epochs = 1, # 전체 훈련 실행에 대해 설정하십시오.
    	max_steps = 6, # 소수를 사용하여 테스트합니다
    	Learning_rate = 2E-4,
    	fp16 = is_bfloat16_supported (),
    	bf16 = is_bfloat16_supported (),
    	logging_steps = 1,
    	최적 = "adamw_8bit",
    	weight_decay = 0.01,
    	lr_scheduler_type = "선형",
    	종자 = 3407,
    	output_dir = "출력",
    	report_to = "none", # wandb 등에 사용하십시오
	),)
))

일부 매개 변수에 대한 설명 :

  • PER_DEVICE_TRAIN_BATCH_SIZE : 장치 당 배치 크기; 더 많은 GPU 메모리를 활용하려면 증가하지만 비효율적 인 패딩을 지켜보십시오 (제안 : 2).
  • gradient_accumulation_steps : 추가 메모리 사용없이 더 큰 배치 크기를 시뮬레이션합니다. 더 부드러운 손실 곡선의 증가 (제안 : 4).
  • Max_steps : 총 교육 단계; 더 빠른 실행 (예 : 60)으로 설정하거나 전체 데이터 세트 패스 (예 : 1-3)에`num_train_epochs`를 사용하십시오.
  • Learning_rate : 훈련 속도와 수렴을 제어합니다. 낮은 요금 (예 : 2E-4)은 정확도를 향상 시키지만 훈련이 느립니다.

응답 템플릿을 지정 하여만 응답에 대한 모델 열차를 만듭니다.

 트레이너 = train_on_responses_only (
	훈련자,
	습기_part = " user  \ n \ n",
	response_part = " 어시스턴트  \ n \ n",
))

모델을 미세 조정합니다

 Trainer_stats = Trainer.Train ()

교육 통계는 다음과 같습니다.

미세 조정 라마 3.2 3B 헝겊 분석 - 분석 Vidhya

모델을 테스트하고 저장하십시오

추론을 위해 모델을 사용합시다.

 fastlanguagemodel.for_inference (모델)

메시지 = [
	{ "역할": "사용자", "내용": "컨텍스트 : 하늘은 일반적으로 낮에는 분명합니다. 질문 : 물은 어떤 색입니까?"},
]]
입력 = tokenizer.apply_chat_template (
	메시지,
	Tokenize = true,
	add_generation_prompt = true,
	return_tensors = "pt",
) .to ( "cuda")

text_streamer = TextStreamer (Tokenizer, skip_prompt = true)
_ = model.generate (input_ids = inputs, streamer = text_streamer, max_new_tokens = 128,
               	use_cache = true, 온도 = 1.5, min_p = 0.1)

로라 가중치를 포함한 훈련 된 것을 저장하려면 아래 코드를 사용하십시오.

 model.save_pretraind_merged ( "model", tokenizer, save_method = "merged_16bit")

체크 아웃 : 대형 언어 모델을 미세 조정하는 안내서

결론

RAG 작업의 미세 조정 LLAMA 3.2 3B는 계산 비용을 줄이는 고성능을 제공하는 작은 모델의 효율성을 보여줍니다. LORA와 같은 기술은 정확도를 유지하면서 리소스 사용량을 최적화합니다. 이 접근법은 도메인 별 응용 프로그램을 강화하여 고급 AI가보다 접근 가능하고 확장 가능하며 비용 효율적이며 실제 도전에 대한 AI를 검색하고 민주화하는 혁신을 주도합니다.

또한 읽으십시오 : 메타 라마 3.2로 시작하십시오

자주 묻는 질문

Q1. 헝겊이란?

A. Rag는 검색 시스템과 생성 모델을 결합하여 외부 지식에 접지하여 응답을 향상시켜 질문 답변 및 요약과 같은 작업에 이상적입니다.

Q2. 미세 조정을 위해 LLAMA 3.2 3B를 선택하는 이유는 무엇입니까?

A. LLAMA 3.2 3B는 성능, 효율성 및 확장 성의 균형을 제공하여 RAG 작업에 적합한 동시에 계산 및 메모리 요구 사항을 줄입니다.

Q3. Lora 란 무엇이며 미세 조정을 어떻게 개선합니까?

A. 저 순위 적응 (LORA)은 모든 모델 매개 변수 대신 저 순위 행렬 만 교육하여 자원 사용량을 최소화하여 제한된 하드웨어에 대한 효율적인 미세 조정을 가능하게합니다.

Q4. 이 기사에서 미세 조정에 어떤 데이터 세트가 사용됩니까?

A. Hugging Face는 더 나은 작업 성능을 위해 LLAMA 3.2 3B 모델을 미세 조정하기 위해 컨텍스트, 질문 및 답변이 포함 된 Rag 데이터 세트를 제공합니다.

Q5. 미세 조정 모델을 Edge 장치에 배포 할 수 있습니까?

A. 예, LLAMA 3.2 3B, 특히 양자화 된 형태로 Edge 및 모바일 환경에서 메모리 효율적인 배포에 최적화되어 있습니다.

위 내용은 미세 조정 라마 3.2 3B 헝겊 분석 - 분석 Vidhya의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
chatgpt를 사용할 수 없습니다! 즉시 테스트 할 수있는 원인과 솔루션 설명 [최신 2025]chatgpt를 사용할 수 없습니다! 즉시 테스트 할 수있는 원인과 솔루션 설명 [최신 2025]May 14, 2025 am 05:04 AM

chatgpt에 액세스 할 수 없습니까? 이 기사는 다양한 실용적인 솔루션을 제공합니다! 많은 사용자가 매일 chatgpt를 사용할 때 액세스 할 수 없거나 느린 응답과 같은 문제가 발생할 수 있습니다. 이 기사는 다양한 상황에 따라 이러한 문제를 단계별로 해결하도록 안내합니다. Chatgpt의 접근성 및 예비 문제 해결의 원인 먼저 문제가 OpenAI 서버 측 또는 사용자의 네트워크 또는 장치 문제에 있는지 확인해야합니다. 문제 해결을 위해 아래 단계를 따르십시오. 1 단계 : OpenAI의 공식 상태를 확인하십시오 chatgpt 서비스가 정상적으로 실행 중인지 확인하려면 OpenAi 상태 페이지 (status.openai.com)를 방문하십시오. 빨간색 또는 노란색 알람이 표시되면 열린 것을 의미합니다.

ASI의 위험을 계산하는 것은 인간의 마음으로 시작합니다ASI의 위험을 계산하는 것은 인간의 마음으로 시작합니다May 14, 2025 am 05:02 AM

2025 년 5 월 10 일, MIT 물리학 자 Max Tegmark는 AI Labs가 인공 초 지능을 방출하기 전에 Oppenheimer의 삼위 일체 테스트 미적분학을 모방해야한다고 Guardian에게 말했다. “내 평가는 'Compton Constant', 인종이

Chatgpt에서 가사를 작성하고 작곡하는 방법에 대한 이해하기 쉬운 설명Chatgpt에서 가사를 작성하고 작곡하는 방법에 대한 이해하기 쉬운 설명May 14, 2025 am 05:01 AM

AI 음악 제작 기술은 매일 매일 변화하고 있습니다. 이 기사는 Chatgpt와 같은 AI 모델을 예로 사용하여 AI를 사용하여 음악 제작을 지원하고 실제 사례에 대해 설명하는 방법을 자세히 설명합니다. 우리는 Sunoai, Hugging Face의 AI Jukebox 및 Python 's Music21 Library를 통해 음악을 만드는 방법을 소개합니다. 이러한 기술을 통해 모든 사람은 독창적 인 음악을 쉽게 만들 수 있습니다. 그러나 AI 생성 컨텐츠의 저작권 문제는 무시할 수 없으며 사용할 때는 신중해야합니다. 음악 분야에서 AI의 무한한 가능성을 모색 해 봅시다! OpenAi의 최신 AI 에이전트 "OpenAi Deep Research"가 소개됩니다. [chatgpt] ope

chatgpt-4는 무엇입니까? 당신이 할 수있는 일, 가격 및 GPT-3.5의 차이에 대한 철저한 설명!chatgpt-4는 무엇입니까? 당신이 할 수있는 일, 가격 및 GPT-3.5의 차이에 대한 철저한 설명!May 14, 2025 am 05:00 AM

ChatGpt-4의 출현은 AI 응용 프로그램의 가능성을 크게 확장했습니다. GPT-3.5와 비교하여 ChatGpt-4는 상당히 개선되었습니다. 강력한 맥락 이해력이 있으며 이미지를 인식하고 생성 할 수도 있습니다. 그것은 보편적 인 AI 조수입니다. 비즈니스 효율성 향상 및 창출 지원과 같은 많은 분야에서 큰 잠재력을 보여주었습니다. 그러나 동시에, 우리는 또한 사용의 예방 조치에주의를 기울여야합니다. 이 기사에서는 ChatGpt-4의 특성을 자세히 설명하고 다양한 시나리오에 대한 효과적인 사용 방법을 소개합니다. 이 기사에는 최신 AI 기술을 최대한 활용하는 기술이 포함되어 있습니다. OpenAi의 최신 AI 에이전트, "OpenAi Deep Research"에 대한 자세한 내용은 아래 링크를 클릭하십시오.

chatgpt 앱을 사용하는 방법을 설명하십시오! 일본 지원 및 음성 대화 기능chatgpt 앱을 사용하는 방법을 설명하십시오! 일본 지원 및 음성 대화 기능May 14, 2025 am 04:59 AM

chatgpt 앱 : AI 조수와 함께 창의력을 발휘하십시오! 초보자 가이드 Chatgpt 앱은 쓰기, 번역 및 질문 답변을 포함하여 광범위한 작업을 처리하는 혁신적인 AI 어시스턴트입니다. 창의적인 활동과 정보 수집에 유용한 끝없는 가능성이있는 도구입니다. 이 기사에서는 초보자를위한 이해하기 쉬운 방법, ChatGpt 스마트 폰 앱을 설치하는 방법, 음성 입력 기능 및 플러그인과 같은 앱의 고유 한 기능 및 앱을 사용할 때 염두에 두는 포인트에 이르기까지 설명합니다. 또한 플러그인 제한 및 장치 간 구성 동기화를 자세히 살펴 보겠습니다.

중국어 버전의 Chatgpt를 어떻게 사용합니까? 등록 절차 및 수수료에 대한 설명중국어 버전의 Chatgpt를 어떻게 사용합니까? 등록 절차 및 수수료에 대한 설명May 14, 2025 am 04:56 AM

Chatgpt Chinese 버전 : 중국 AI 대화의 새로운 경험 잠금 해제 Chatgpt는 전 세계적으로 인기가 있습니다. 중국어 버전도 제공한다는 것을 알고 있습니까? 이 강력한 AI 도구는 일상적인 대화를 지원할뿐만 아니라 전문적인 콘텐츠를 처리하며 단순화되고 전통적인 중국어와 호환됩니다. 중국의 사용자이든 중국어를 배우는 친구이든 상관없이 혜택을 누릴 수 있습니다. 이 기사는 계정 설정, 중국 신속한 단어 입력, 필터 사용 및 다양한 패키지 선택을 포함하여 ChatGpt 중국어 버전을 사용하는 방법을 자세히 소개하고 잠재적 위험 및 응답 전략을 분석합니다. 또한 ChatGpt 중국어 버전을 다른 중국 AI 도구와 비교하여 장점과 응용 프로그램 시나리오를 더 잘 이해할 수 있도록 도와줍니다. Openai의 최신 AI 인텔리전스

5 AI 요원 신화 당신은 지금 믿음을 중단해야합니다.5 AI 요원 신화 당신은 지금 믿음을 중단해야합니다.May 14, 2025 am 04:54 AM

이것들은 생성 AI 분야의 다음 도약으로 생각 될 수 있으며, 이는 우리에게 Chatgpt 및 기타 대규모 모델 챗봇을 제공했습니다. 단순히 질문에 대답하거나 정보를 생성하는 대신, 우리를 대신하여 조치를 취할 수 있습니다.

Chatgpt를 사용하여 여러 계정을 만들고 관리하는 불법성에 대한 이해하기 쉬운 설명Chatgpt를 사용하여 여러 계정을 만들고 관리하는 불법성에 대한 이해하기 쉬운 설명May 14, 2025 am 04:50 AM

ChatGpt를 사용한 효율적인 다중 계정 관리 기술 | 비즈니스와 사생활 사용 방법에 대한 철저한 설명! Chatgpt는 다양한 상황에서 사용되지만 일부 사람들은 여러 계정 관리에 대해 걱정할 수 있습니다. 이 기사는 ChatGpt에 대한 여러 계정을 만드는 방법, 사용할 때 수행 할 작업 및 안전하고 효율적으로 작동하는 방법을 자세히 설명합니다. 또한 비즈니스와 개인 사용의 차이, OpenAI의 이용 약관을 준수하는 것과 같은 중요한 점을 다루며 여러 계정을 안전하게 활용하는 데 도움이되는 안내서를 제공합니다. Openai

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구