대형 모델은 주요 성능 목록을 휩쓸었을 뿐만 아니라 많은 흥미로운 애플리케이션을 생성하면서 AI 분야의 트렌드가 되었습니다. 예를 들어 마이크로소프트(Microsoft)와 오픈AI(OpenAI)가 개발한 자동 코드 제안 완성 도구인 코파일럿(Copilot)은 프로그래머를 위한 최고의 보조자가 되어 업무 효율성을 높여준다.
OpenAI는 가짜와 실제 텍스트를 생성할 수 있는 이미지 모델인 DALL-E 2를 방금 출시했고 Google은 즉시 Imagen을 출시했습니다. 대형 모델의 경우 대기업도 이력서 순위만큼 나쁘지 않습니다. .
텍스트-이미지 생성 예시 "고양이에 걸려 넘어진 그리스 조각상" (왼쪽 두 열은 Imagen, 오른쪽 두 열은 DALL·E 2) 모델의 증가로 인해 사전 훈련된 모델의 규모가 최근 몇 년간 폭발적으로 증가했습니다. 그러나 대규모 모델을 훈련하거나 미세 조정하려면 수십 또는 수백 개의 GPU가 필요한 매우 높은 하드웨어 비용이 필요합니다. 또한, PyTorch, TensorFlow 등 기존 딥러닝 프레임워크 역시 초대형 모델을 효과적으로 처리하기 어렵고, 특정 모델을 조정하고 최적화하려면 전문 AI 시스템 엔지니어가 필요한 경우가 많습니다. 더 중요한 것은 그래픽 카드가 하나만 있는 개별 개발자는 물론이고 모든 실험실 및 R&D 팀이 언제든지 대규모 모델을 사용하기 위해 대규모 GPU 클러스터를 호출할 수 있는 능력을 갖고 있는 것은 아니라는 것입니다. 그래서 대형 모델이 많은 주목을 받았음에도 불구하고 높은 진입장벽으로 인해 일반인들에게는 '접근불가'가 되어버렸다.
대형 모델 사용에 따른 비용 상승의 핵심 원인은 비디오 메모리의 한계입니다. GPU 컴퓨팅은 빠르지만 메모리 용량이 제한되어 있어 대규모 모델을 수용할 수 없습니다. 이러한 문제점을 해결하기 위해 Colossal-AI는 이기종 메모리 시스템을 사용하여 GPU 메모리와 저렴한 CPU 메모리를 모두 효율적으로 사용합니다. 단 하나의 GPU로 개인 PC에서 최대 180억 개의 매개변수 GPT를 훈련할 수 있으므로 모델 용량을 늘릴 수 있습니다. 10 대규모 AI 모델의 미세 조정 및 추론 등 다운스트림 작업 및 애플리케이션 배포에 대한 임계값을 크게 줄이고 대규모 배포로 쉽게 확장할 수 있습니다. Hugging Face는 GPT 및 OPT와 같은 대형 모델을 포함하여 50,000개 이상의 AI 모델 구현을 딥 러닝 커뮤니티에 제공했으며 현재 가장 인기 있는 AI 라이브러리 중 하나가 되었습니다.
Colossal-AI는 Hugging Face 커뮤니티 모델을 원활하게 지원하여 모든 개발자가 접근할 수 있는 대규모 모델을 만듭니다. 다음으로 Meta에서 출시한 대형 모델 OPT를 예로 들어 Colossal-AI를 사용하여 코드 몇 줄만 추가하면 저비용으로 교육하고 대형 모델을 미세 조정할 수 있는 방법을 보여 드리겠습니다.
오픈소스 주소 : https://github.com/hpcaitech/ColossalAI 저가형 가속 대형 모델 OPTOPT 모델 OPT의 풀네임은 Open Pretrained Transformer이며, 이는 2017년 출시된 벤치마크 GPT-3의 대형 버전입니다. Meta(Facebook) AI Lab Scale Transformer 모델. OpenAI가 아직 모델 가중치를 공개하지 않은 GPT-3에 비해 Meta AI는 모든 코드와 모델 가중치를 아낌없이 오픈 소스화하여 AI 대형 모델의 민주화를 크게 촉진했으며, 이를 기반으로 모든 개발자가 다운스트림에서 개성을 개발할 수 있습니다. 작업. 다음으로 Hugging Face에서 제공하는 OPT 모델의 사전 훈련된 가중치를 사용하여 캐주얼 언어 모델링을 미세 조정해 보겠습니다. 구성 파일 추가 Colossal-AI의 강력한 기능을 사용하기 위해 사용자는 코드 훈련 로직을 변경할 필요가 없습니다. 모델에 혼합 정밀도, 그래디언트 누적 등 원하는 기능을 제공하기 위한 간단한 구성 파일만 추가하면 됩니다. 다차원 병렬 훈련, 중복 메모리 최적화 등 GPU에서는 이종 훈련을 예로 들어 구성 파일에 관련 구성 항목만 추가하면 됩니다. 그 중 tensor_placement_policy는 이기종 훈련 전략을 결정합니다. 이 매개변수는 cuda, cpu 및 auto가 될 수 있습니다. 각 전략에는 서로 다른 장점이 있습니다.
일반 사용자의 경우 자동 전략만 선택하면 되며 Colossal-AI는 자동으로 동적으로 최적의 이종 전략을 실시간으로 선택하여 컴퓨팅 효율성을 극대화합니다.
from colossalai.zero.shard_utils import TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>optimizer_config=dict(gpu_margin_mem_ratio=0.8)
실행 시작 구성 파일이 준비된 후 선언된 새 함수를 시작하려면 몇 줄의 코드만 삽입하면 됩니다. 먼저 코드 줄을 통해 구성 파일을 사용하여 Colossal-AI를 시작합니다. Colossal-AI는 자동으로 분산 환경을 초기화하고 관련 구성을 읽은 다음 구성의 기능을 모델, 최적화 프로그램 및 기타 구성 요소에 자동으로 주입합니다. .
colossalai.launch_from_torch(config='./configs/colossalai_zero.py')
다음으로 사용자는 네이티브 PyTorch 코드를 직접 사용하는 등 평소와 같이 데이터세트, 모델, 옵티마이저, 손실 함수 등을 정의할 수 있습니다. 모델을 정의할 때 ZeroInitContext 아래에 모델을 배치하고 초기화하면 됩니다. 이 예에서는 OPTForCausalLM 모델과 Hugging Face에서 제공하는 사전 훈련된 가중치를 사용하여 Wikitext 데이터 세트를 미세 조정합니다.
with ZeroInitContext(target_device=torch.cuda.current_device(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)
그런 다음 colossalai.initialize를 호출하면 구성 파일에 정의된 이기종 메모리 함수를 훈련 엔진에 균일하게 주입하고 해당 함수를 시작합니다.
engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,<br> optimizer=optimizer,<br> criterion=criterion,<br> train_dataloader=train_dataloader,<br> test_dataloader=eval_dataloader,<br> lr_scheduler=lr_scheduler)
단일 GPU에서의 이점은 상당합니다. Colossal-AI는 자동화된 자동 전략을 사용하며 DeepSpeed의 ZeRO 오프로딩 전략에 비해 다양한 모델 크기에서 상당한 이점을 보여줍니다. 가능한. PyTorch와 같은 기존 딥 러닝 프레임워크는 더 이상 단일 GPU에서 이러한 대규모 모델을 실행할 수 없습니다.
8개의 GPU를 사용하는 병렬 훈련의 경우 Colossal-AI는 이를 달성하기 위해 시작 명령에 nprocs 8만 추가하면 됩니다! 이러한 획기적인 개선의 비결은 Colossal-AI의 효율적인 이기종 메모리 관리 하위 시스템인 Gemini에서 비롯됩니다. 간단히 말하면, Gemini는 모델 훈련 중에 처음 몇 단계에서 예열하고 PyTorch 동적 계산 그래프에서 메모리 소비 정보를 수집합니다. 워밍업이 완료된 후 연산자를 계산하기 전에 수집된 메모리 사용량 기록을 사용합니다. 컴퓨팅 장치에서 이 연산자에 필요한 최대 메모리를 예약하는 동시에 일부 모델 텐서를 GPU 메모리에서 CPU 메모리로 이동합니다.
Gemini의 내장 메모리 관리자는 각 텐서에 HOLD, COMPUTE, FREE 등의 상태 정보를 표시합니다. 그런 다음 동적으로 쿼리된 메모리 사용량을 기반으로 텐서 상태를 지속적으로 동적으로 변환하고 텐서 위치를 조정합니다. DeepSpeed의 ZeRO Offload의 정적 분할과 비교하여 Colossal-AI Gemini는 GPU 메모리와 CPU 메모리를 보다 효율적으로 활용하여 모델 극대화를 달성할 수 있습니다. 하드웨어가 극도로 제한되어 있을 때의 능력과 균형 훈련 속도.
대형 모델의 대표적인 GPT의 경우, RTX 2060 6GB가 장착된 일반 게이밍 노트북에서 Colossal-AI를 사용하면 RTX3090 24GB가 장착된 개인용 컴퓨터의 경우 최대 15억 개의 매개변수 모델을 직접 훈련할 수 있습니다. 수억 개의 매개변수를 사용하여 180개 모델을 훈련합니다. Colossal-AI는 Tesla V100과 같은 전문 컴퓨팅 카드에 대해서도 상당한 개선을 보여줄 수 있습니다. 한 단계 더 나아가: 편리하고 효율적인 병렬 확장 병렬 분산 기술은 모델 훈련을 더욱 가속화하는 중요한 수단입니다. 세계에서 가장 크고 최첨단 AI 모델을 최단 시간에 훈련시키고 싶다면 여전히 불가능합니다. 효율적인 분산 병렬 확장. Colossal-AI는 제한된 병렬 크기, 낮은 효율성, 열악한 다양성, 배포 어려움, 유지 관리 부족 등 기존 솔루션의 문제점을 고려하여 효율적인 다차원 병렬 처리 및 이종 병렬 처리와 같은 기술을 사용하여 사용자가 배포할 수 있도록 합니다. 최소한의 수정만으로 효율적이고 빠르게 AI 대규모 모델 학습이 가능합니다. 예를 들어, 데이터 병렬성, 파이프라인 병렬성, 2.5차원 텐서 병렬성 등을 사용하는 복잡한 병렬 전략은 간단한 선언으로 자동으로 구현될 수 있습니다. Colossal-AI는 다른 시스템처럼 코드에 침입하여 복잡한 기본 로직을 수동으로 처리할 필요가 없습니다. 그리고 프레임워크.
Python<br>parallel = dict(<br>pipeline=2,<br>tensor=dict(mode='2.5d', depth = 1, size=4)<br>)
특히, GPT-3과 같은 초대형 AI 모델의 경우 Colossal-AI는 NVIDIA 솔루션에 비해 훈련을 시작하는 데 절반의 컴퓨팅 리소스만 필요하며, 동일한 컴퓨팅 리소스를 사용하면 속도는 11배 증가할 수 있습니다. %, 이는 GPT-3 교육 비용을 미화 100만 달러 이상 절감할 수 있습니다. Colossal-AI 관련 솔루션은 자율 주행, 클라우드 컴퓨팅, 소매, 의료, 칩 및 기타 산업 분야의 유명 제조업체에서 성공적으로 구현되었으며 널리 호평을 받았습니다.
예를 들어 단백질 구조 예측 애플리케이션 AlphaFold2의 경우 Colossal-AI의 가속 솔루션 기반 FastFold가 Google 및 Columbia University의 솔루션을 성공적으로 능가하여 AlphaFold2의 훈련 시간을 11일에서 67시간으로 단축했으며 총 비용은 더 낮으면 긴 시퀀스 추론 속도도 9.3~11.6배 향상됩니다.
Colossal-AI는 오픈 소스 커뮤니티 구축에 중점을 두고, 중국어 튜토리얼을 제공하고, 사용자 커뮤니티 및 포럼을 열고, 사용자 피드백에 대한 효율적인 커뮤니케이션과 반복적인 업데이트를 수행하며, PaLM 및 AlphaFold와 같은 최첨단 애플리케이션을 지속적으로 추가합니다. Colossal-AI는 천연 오픈소스 이후 GitHub 및 Papers With Code 핫리스트에서 여러 차례 세계 1위를 차지했으며, 수만 명의 스타가 참여하는 수많은 스타 오픈소스 프로젝트와 함께 국내외에서 주목을 받고 있습니다!
포털 프로젝트 주소: https://github.com/hpcaitech/ColossalAI
위 내용은 Hugging Face 커뮤니티를 원활하게 지원하는 Colossal-AI는 저렴한 비용으로 대규모 모델을 쉽게 가속화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!