KR20240046596A - 딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램 - Google Patents

딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20240046596A
KR20240046596A KR1020247009547A KR20247009547A KR20240046596A KR 20240046596 A KR20240046596 A KR 20240046596A KR 1020247009547 A KR1020247009547 A KR 1020247009547A KR 20247009547 A KR20247009547 A KR 20247009547A KR 20240046596 A KR20240046596 A KR 20240046596A
Authority
KR
South Korea
Prior art keywords
parameter
target
processor
training
network
Prior art date
Application number
KR1020247009547A
Other languages
English (en)
Inventor
민슈 장
하이펑 왕
판 장
신슈안 우
슈에펑 야오
단레이 펑
즈후와 우
즈펑 탄
지에 딩
디앤하이 위
Original Assignee
베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 filed Critical 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드
Publication of KR20240046596A publication Critical patent/KR20240046596A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시는 딥러닝 모델의 훈련 방법을 제공하며, 인공지능 분야에 관한 것으로, 구체적으로 딥러닝 및 지능형 추천 분야에 관한 것이다. 딥러닝 모델의 훈련 방법의 구체적인 구현 방안은, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것; 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 써, 목표 프로세서에 포함된 컴퓨팅 코어가 제1 훈련 데이터에 따라 제1 네트워크 파라메터를 조정하도록 하는 것이다.

Description

딥러닝 모델의 훈련 방법, 장치, 시스템, 기기 및 매체
본 출원은 2022년 5월 19일에 제출된 출원번호가 202210559489. 0인 중국 특허 출원의 우선권을 요구하며, 그 모든 내용은 인용을 통해 본 개시에 결합된다.
본 개시는 인공지능 분야에 관한 것으로, 구체적으로 딥러닝 및 지능형 추천 분야에 관한 것으로, 특히 딥러닝 모델의 훈련 방법, 장치, 시스템, 전자 기기 및 저장 매체에 관한 것이다.
컴퓨터 기술, 네트워크 기술 및 통신 기술의 발전에 따라 딥러닝 등의 기술의 지능형 추천 등 분야에서의 적용이 점점 더 보급되고 있다. 빅 데이터 물결의 추진과 딥러닝 기술의 장족의 발전에 따라 딥러닝 기술의 데이터 규모와 모델 규모가 모두 현저하게 증가하였다. 따라서, 모델 훈련에서 하드웨어 환경에 대해 비교적 높게 요구하며, 통상 훈련의 시간 비용도 매우 높다.
본 개시의 목적은 하드웨어에 대한 요구를 낮추고 대규모 모델 훈련을 구현하는 데 도움이 되는 딥러닝 모델의 훈련 방법, 장치, 시스템, 전자 기기 및 저장 매체를 제공하는 것이다.
본 개시의 일 측면에 따르면, 딥러닝 모델의 훈련 방법을 제공하며, 상기 딥러닝 모델의 훈련 방법은, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것; 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 써, 목표 프로세서에 포함된 컴퓨팅 코어가 제1 훈련 데이터에 따라 제1 네트워크 파라메터를 조정하도록 한다.
본 개시의 일 측면에 따르면, 딥러닝 모델의 훈련 방법을 제공하며, 상기 딥러닝 모델의 훈련 방법은, 제1 프로세서는 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것; 제1 프로세서는 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 제1 프로세서는 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 쓰고, 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송하는 것; 제2 프로세서의 컴퓨팅 코어는 훈련 태스크 정보를 수신한 것에 응답하여, 제1 훈련 데이터에 따라 제1 네트워크 파라메터를 조정하는 것을 포함한다.
본 개시의 다른 측면에 따르면, 딥러닝 모델의 훈련 장치를 제공하며, 상기 딥러닝 모델의 훈련 장치는, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하기 위한 목표 파라미터 결정 모듈; 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하기 위한 잔여 슬롯 결정 모듈; 및 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 써 목표 프로세서에 포함된 컴퓨팅 코어가 제1 훈련 데이터에 따라 제1 네트워크 파라메터를 조정하도록 하기 위한 파라미터 쓰기 모듈을 포함한다.
본 개시의 다른 측면에 따르면, 딥러닝 모델의 훈련 시스템을 제공하며, 상기 딥러닝 모델의 훈련 시스템은 제1 프로세서와 제2 프로세서를 포함하고, 제2 프로세서는 목표 메모리와 컴퓨팅 코어를 포함하고, 제1 프로세서는, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것; 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 쓰고, 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송하도록 구성되며, 제2 프로세서는, 커퓨팅 코어가 훈련 태스크 정보를 수신한 것에 응답하여, 제1 훈련 데이터에 따라 제1 네트워크 파라메터를 조정하도록 구성된다.
본 개시의 다른 측면에 따르면, 적어도 하나의 프로세서 및 적어도 하나의 프로세서와 통신 연결된 메모리를 포함하며, 여기서, 메모리에는 적어도 하나의 프로세서에 의해 실행 가능한 명령어가 저장되어 있고, 명령어는 적어도 하나의 프로세서에 의해 실행되어, 적어도 하나의 프로세서로 하여금 본 개시가 제공하는 딥러닝 모델의 훈련 방법을 실행할 수 있게 한다.
본 개시의 다른 측면에 따르면, 상기 컴퓨터로 하여금 본 개시가 제공하는 딥러닝 모델의 훈련 방법을 실행하게 하기 위한 컴퓨터 명령어가 저장되어 있는 비휘발성 컴퓨터 판독 가능 저장 매체를 제공한다.
본 개시의 다른 측면에 따르면, 프로세서에 의해 실행될 시에 본 개시가 제공하는 딥러닝 모델의 훈련 방법을 구현하는 컴퓨터 프로그램/명령어를 포함하는 컴퓨터 프로그램 제품을 제공한다.
이 부분에서 설명한 내용은 본 개시의 실시예의 핵심 또는 중요한 특징들을 표시하기 위한 것이 아니며, 본 개시의 범위를 한정하는 데 사용하지 않는다는 것을 이해해야 한다. 본 개시의 기타 특징은 아래의 명세서를 통해 쉽게 이해할 수 있게 될 것이다.
도면은 본 방안을 보다 잘 이해하는 데 사용되며, 본 출원에 대한 한정이 되지 않는다. 그중에,
도 1은 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법, 장치 및 시스템의 응용 장면 아키텍처 도면이며,
도 2는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법의 흐름 개략도이며,
도 3은 본 개시의 다른 실시예에 따른 딥러닝 모델의 훈련 방법의 흐름 개략도이며,
도 4는 본 개시의 실시예에 따른 프로세서 캐시의 구조 개략도이며,
도 5는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법의 전체 흐름 개략도이며,
도 6은 본 개시의 실시예에 따른 프로세서의 싱글 머신 멀티 카드의 통신 토폴로지 도면이며,
도 7은 본 개시의 실시예에 따른 비동기화 파이프라인 형식으로 모델을 훈련하는 원리 개략도이며,
도 8는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 장치의 구조 블록도이며,
도 9는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 시스템의 구조 블록도이며,
도 10은 본 개시의 실시예의 딥러닝 모델의 훈련 방법을 실시하기 위한 전자 기기의 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 예시적인 실시예를 상세히 설명하기로 한다. 이해를 돕기 위하여 그 중에는 본 출원의 실시예의 다양한 세부사항이 포함되어 있으며, 이들을 단지 예시적인 것으로 간주해야 한다. 따라서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 출원의 범위 및 사상을 벗어나는 것이 없이 여기서 설명된 실시예에 대해 다양한 변경 및 수정을 진행할 수 있음을 인식해야 한다. 마찬가지로, 명확하고 간결하기 위하여, 아래 설명 중에는 공지 기능 또는 구성에 대한 설명은 생략하도록 한다.
빅 데이터 물결의 추진과 딥러닝 기술의 발전에 따라 산업 추천 장면에서 데이터 규모와 모델 규모가 모두 현저하게 증가하고 있다. 예를 들면, 추천 모델의 정확도를 높이기 위해서는 일반적으로 억 수준의 클릭 데이터에 따라 훈련 샘플을 생성하여 해당 추천 모델을 훈련시켜야 한다. 추천 모델에서일반적으로 임베딩(Embedding) 기술을 사용하여 대상(사용자 및 물품 등)의 고차원 희소 특징 벡터를 저차원의 조밀한 특징 벡터로 전환한다. 이와 같이, 임베딩 기술에 관련된 파라미터의 양은 종종 천억 심지어 조 레벨에 도달하며, 관련된 파라미터도 희소한 특성을 가지고 있다.
대규모의 희소 파라미터의 훈련을 구현하기 위해 CPU 또는 GPU에 기반한 파라미터 서버 아키텍처를 사용하여 대규모의 희소 파라미터를 분산화 훈련하여 훈련 효율을 향상시킬 수 있다.
파라미터 서버 아키텍처는 예를 들면 HugeCTR, Paddle-GPUPS 및 Persia 등을 포함할 수 있다.
예를 들면, HugeCTR은 GPU로 추천 모델 훈련을 가속화하는 프레임워크이며, 해당 프레임워크는 멀티 머신 멀티 카드 가속을 지원하며, 해당 프레임워크는 파라미터가 희소하게 분포된 임베딩 레이어에 대한 모델 병행 훈련과 파라미터가 조밀하게 분포된 네트워크에 대한 데이터 병행 훈련의 혼합 훈련 방식을 지원한다. Huge CTR은 임베딩 레이어를 복수 개로 분할하여 멀티 머신 멀티 카드에 할당하고, 각 GPU에 전역의 임베딩 레이어의 일부를 보존하는 동시에, 각 GPU에는 모두 파라미터가 조밀하게 분포된 완전한 네트워크를 가지고 있다. 추천 모델을 훈련할 때, 전역의 샘플 데이터를 셔플(shuffle) 및 분할하여 각 GPU에 서로 다른 샘플 데이터를 할당하여 데이터 병렬 방식의 훈련을 진행할 수 있다.
HugeCTR의 경우, 두 가지 방식의 임베딩 레이어의 저장을 지원한다. 하나는 동일한 슬롯(slot)에 속하는 희소 파라미터를 동일한 GPU의 그래픽 카드 램에 캐시하는 방식이며, 또 하나는 전체 희소 파라미터를 분산하여 다른 GPU의 그래픽 카드 램에 저장하는 방식이다. 이러한 방식에는 모두 일부 희소 파라미터가 반복적으로 캐시되는 상황이 존재하여 그래픽 카드 램에 어느 정도의 낭비를 초래할 수 있다. 또한 HugeCTR은 복수의 CPU가 모델의 훈련에 참여해야 하기 때문에 훈련 비용이 높은 문제가 존재한다.
예를 들면, Paddle-GPUPS의 출현은 수백 대의 CPU 서버 훈련 비용이 비교적 높은 문제를 해결하였다. 이 아키텍처는 각 GPU에 하나의 고대역폭 메모리(High Bandwidth Memory) 해시 테이블(Hash Table)을 구축한다. 훈련이 시작되기 전에 이 아키텍처는 먼저 현재 획득한 하나의 패스(Pass) 중의 데이터의 특징을 임베딩 처리할 때 필요한 희소 파라미터를 CPU 메모리에서 그래픽 카드 램로 로딩한다. 로딩 시, 동일한 특징 그룹에 필요한 희소 파라미터를 분산하여 다른 그래픽 카드 램에 저장한다. 이와 같이, 하나의 패스에서 추출한 하나의 배치(Batch)의 데이터에 기반하여 모델을 훈련할 때, 각 GPU는 특징 식별자에 따라 기타 그래픽 카드 램에서 원하는 희소 파라미터를 복사해야 한다. 이 아키텍처는 훈련 과정에서 GPU 간의 통신 오버헤드가 비교적 크고, 각 GPU에 HBM 해시 테이블이 구축 및 저장되어 있기 때문에, 그래픽 카드 램의 크기에 대한 요구가 비교적 높다.
예를 들면, Persia는 대규모 이기종(Heterogeneity) 클러스터 훈련을 위한 추천 모델 훈련 프레임워크이다. 이 프레임워크는 훈련 알고리즘과 훈련 시스템 두 차원에서의 협동 최적화를 통해 최대 훈련 가능한 모델 파라미터 양이 백만억 레벨로 되도록 한다. 이 프레임워크는 임베딩 레이어를 비동기화적으로 업데이트하고, 파라미터가 조밀하게 분포된 네트워크를 동기화적으로 업데이트하며, 시스템의 최적화를 통해 부분적인 통신 과정과 계산 과정을 시간적으로 중첩시킬 수 있다. 이 프레임워크는 종래 프레임워크에 임베딩 워커의 역할을 도입하여, 임베딩 레이어의 훈련 업데이트 태스크를 전체 모델의 훈련 태스크에서 분리하여 임베딩 워커(Embedding Worker)에 넘겨 실행한다. 이 프레임워크는 임베딩 워커를 도입하기 위해 더 많은 CPU가 필요하며, 이는 모델의 훈련 비용을 증가시킨다.
또한, 모델의 훈련 효율을 높이기 위해, 딥러닝 프로세서(Deep learning Processing Unit,DPU), 신경망 프로세서(Neural Network Processing Unit, NPU) 및 텐서 프로세서(Tensor Processing Unit, TPU) 등과 같은 신경망 연산 능력을 가속화하기 위한 다양한 인공지능(Artificial Intelligence,AI) 칩이 생겨났다.
예를 들면, 쿤룬(昆쬐) 코어 2세대 칩은 GDDR6 그래픽 메모리을 사용하는 범용 AI 칩이다. 이 칩은 XPU-R 아키텍처에 기반하여 작동하며, 컴퓨팅의 핵심 연산 능력을 크게 향상시키고, 칩의 범용 계산 능력을 향상시킬 수 있다.
이하, 도 1 를 참조하여 본 개시가 제공하는 방법 및 장치의 적용 장면을 설명하기로 한다.
도 1은 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법, 장치 및 시스템의 응용 장면도이다.
도 1에 도시된 바와 같이, 해당 응용 장면(100)은 노트북, 데스크톱 또는 서버 등일 수 있는 전자 기기를 포함한다. 해당 전자 기기에는 프로세서 CPU(110), 인공지능 칩(120), 램(RAM)(130) 및 하드디스크 메모리(140)가 설치되어 있다.
램(130)은 램 메모리를 말하며, CPU(110)가 직접 어드레싱하고 저장하기 위한 공간이다. 해당 램은 CPU 중의 실행 데이터 및 하드디스크 등 외부 메모리와 교환하는 데이터를 일시적으로 저장할 수 있다. 컴퓨터가 운행중에 있기만 하면 CPU는 연산이 필요한 데이터를 램으로 로딩하여 연산을 진행하고 연산이 완성되면 CPU는 다시 결과를 전이한다. 램(130)은 예를 들면 CPU가 데이터를 읽거나 쓸 수 있는 랜덤 메모리일 수 있다.
하드 디스크 프로세서(140)는 예를 들면 NVMe 인터페이스가 있는 솔리드 스테이트 디스크(Solid State Disk, SSD) 등일 수 있으며, 본 개시는 이에 한정하지 않는다.
인공지능 칩은 데이터 처리 능력을 갖추고 있어, CPU의 작업을 협조하고 전반적인 실행 속도를 향상시킬 수 있다. 인공지능 칩은 예를 들면 위에서 설명한 DPU, NPU 또는 TPU 등을 포함할 수 있다. 해당 인공지능 칩(120)은 컴퓨팅 코어, 그래픽 메모리 및 관련 회로를 포함할 수 있다. 그래픽 메모리는 디스플레이 메모리(150), 즉 인공지능 칩의 전용 램이며, 역할이 컴퓨팅 코어에 의해 처리했거나 추출할 렌더링 데이터를 저장하기 위한 것이며, 램(130)과 유사하게 디스플레이 메모리(150)는 처리할 모델 파라미터, 훈련 샘플 등 정보를 저장하기 위한 것이다.
인공지능 칩(120) 중의 컴퓨팅 코어는 램(130)의 데이터를 직접 읽을 수 없으며, 컴퓨팅 코어는 디스플레이 메모리(150)에서만 데이터를 읽을 수 있다. CPU는 컴퓨팅 태스크를 컴퓨팅 코어에 할당할 수 있으며, 컴퓨팅 코어는 컴퓨팅 태스크를 실행하는 동안, CPU(110)의 제어 하에 램(130)과 디스플레이 메모리(150) 간의 데이터 인터랙션을 진행하여, 컴퓨팅 코어가 컴퓨팅 태스크를 실행할 때 필요한 데이터를 램(130)에서 디스플레이 메모리 (150)로 복사하거나 램(130) 중의 데이터를 직접 디스플레이 메모리(150)로 전이할 수 있다.
딥러닝 기술에 기반하여 구축된 모델을 훈련할 때, CPU(110)는 예를 들면 훈련 태스크를 인공지능 칩(120)에 할당하고, 모델을 램(130)에서 디스플레이 메모리(150)로 전이할 수 있다. 일 실시예에서, 모델을 하드 디스크 메모리(140)에 의해 제공하는 하드 디스크 저장 공간에 저장할 수 있다. 디스플레이 메모리(150), 램(130) 및 하드 디스크 메모리(140)로 구성된 3단계 캐시 공간을 세운다. 이와 같이, 모델을 하드 디스크 메모리(140)에 저장할 때, 모델 훈련 과정에서 훈련 수요에 따라 CPU(110)은 하드 디스크 메모리(140)에서 데이터를 읽어 램에 캐시할 수 있으며, CPU(110)가 인공지능 칩(120)에 훈련 태스크를 할당할 때, 컴퓨팅 코어가 현재의 컴퓨팅 태스크를 실행할 때 관련된 모델 파라미터를 램(130)에서 디스플레이 메모리(150)로 전이하고, 디스플레이 메모리(150)에 저장되고 컴퓨팅 코어가 처리한 후의 데이터를 디스플레이 메모리(150)에서 램(130)으로 전이하여 디스플레이 메모리의 저장 공간이 부족한 상황을 방지한다.
일 실시예에서, 전자 기기에는 예를 들면 다양한 훈련 샘플에 따라 모델 훈련 태스크를 병렬로 실행하여 모델의 훈련 효율을 향상시킬 수 있는 복수의 인공지능 칩이 설치될 수 있다.
본 개시가 제공하는 딥러닝 모델의 훈련 방법은 전자 기기에 의해 실행될 수 있으며, 구체적으로 CPU 또는 인공지능 칩에 의해 상응하는 프로그램 코드를 호출하여 구현할 수 있음을 이해할 수 있다. 이에 따라, 본 개시가 제공하는 딥러닝 모델의 훈련 장치, 딥러닝 모델의 훈련 시스템은 전자 기기에 설치될 수 있다.
이하 도 2 내지 도 7과 결합하여 본 개시가 제공하는 딥러닝 모델의 훈련 방법에 대하여 상세히 설명하기로 한다.
도 2는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법의 흐름 개략도이다.
도 2에 도시된 바와 같이, 본 실시예의 딥러닝 모델의 훈련 방법(200)은 동작 S210 내지 동작 S230을 포함할 수 있다. 이 방법(200)은 예를 들면 위에서 설명한 전자 기기 중의 CPU에 의해 실행될 수 있다.
동작 S210에서, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 메모리에 써야 하는 제1 목표 파라미터를 결정한다.
동작 S220에서, 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정한다.
동작 S230에서, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 써 목표 프로세서에 포함된 컴퓨팅 코어가 제1 훈련 데이터에 따라 상기 제1 네트워크 파라메터를 조정하도록 한다.
본 개시의 실시예에 따르면, 목표 메모리는 예를 들면 목표 프로세서에 포함되는 메모리일 수 있다. 목표 프로세서는 예를 들면 위에서 설명한 인공지능 칩일 수 있으며, 그래픽 프로세서 GPU 등일 수도 있다. 해당 목표 프로세서는 CPU에 할당된 컴퓨팅 태스크를 수신하고, 목표 스토리지에 저장된 데이터에 따라 할당된 컴퓨팅 태스크를 실행할 수 있다. 해당 컴퓨팅 태스크에는 예를 들면 딥러닝 모델을 훈련하기 위한 모델 훈련 태스크가 포함될 수 있다. 딥러닝 모델은 예를 들면 이미지 처리 모델, 음성 처리 모델 또는 텍스트 처리 모델이 포함할 수 있다. 일 구체적인 장면에서, 딥러닝 모델은 추천 모델일 수 있으며, 본 실시예는 대량의 추천 대상에 대한 사용자의 인터랙션 행위 정보에 기반하여, 구배 하강 등 방법을 통해 추천 모델을 훈련할 수 있다. 추천 모델의 모델 파라미터가 수렴된 후, 사용자에게 맞춤형 추천을 진행할 수 있다.
일 실시예에서, 딥러닝 모델은 예를 들면 임베딩 레이어 및 예측 네트워크를 포함할 수 있다. 임베딩 레이어는 딥러닝 모델에 입력된 데이터를 임베딩 처리하여, 입력된 데이터를 고차원 희소 공간에서 저차원 조밀한 특징 공간으로 투사하도로 하기 위한 것이다. 본 개시의 실시예에서 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터는 해당 임베딩 레이어 중의 네트워크 파라미터이다. 해당 제1 네트워크 파라미터는 예를 들면 코어 함수를 호출하여 결정될 수 있다.
일 실시예에서, 결정된 제1 네트워크 파라미터와 목표 메모리에 저장된 네트워크 파라미터를 비교하여, 제1 네트워크 파라미터 중 목표 메모리에 저장되지 않은 네트워크 파라미터를 목표 메모리에 써야 하는 제1 목표 파라미터로 결정할 수 있다. 또는, 본 실시예에서, 제1 네트워크 파라미터를 램 및/또는 하드 디스크 프로세서에 저장된 네트워크 파라미터와 비교하여, 제1 네트워크 파라미터에서 램 및/또는 하드 디스크 프로세서에 저장된 네트워크 파라미터를 제1 목표 파라미터로 할 수도 있다. 네트워크 파라미터를 비교할 때, 네트워크 파라미터에 기반하여 임베딩 처리된 데이터의 특징 식별자 Feature sign(Feasign로 약칭)로 비교할 수 있음을 이해할 수 있다.
예를 들면, 하나의 훈련 샘플은 복수 대상의 특징 데이터를 포함할 수 있으며, 각 대상은 복수의 특징 데이터를 포함할 수 있으며, 하나의 특징 데이터에는 하나의 특징 식별자가 대응된다. 각 특징 데이터에 대해 일정된 네트워크 파라미터를 사용하여 임베딩 처리를 진행해야 한다. 예를 들면, 본 개시의 실시예는 네트워크 파라미터와 특징 데이터 간의 대응 관계에 따라 임베딩 레이어의 네트워크 파라미터를 저장하고, 네트워크 파라미터에 대응하는 특징 데이터의 특징 식별자를 추가할 수 있다.
일 실시예에서, CPU는 캐시 또는 램에서 특징 데이터의 특징 식별자와 목표 메모리에 저장된 네트워크 파라미터 간의 매핑 관계 테이블을 유지할 수 있으며, 해당 매핑 관계 테이블은 특징 식별자를 Key로 하고, 매핑 관계를 갖는 네트워크 파라미터의 식별자 정보를 Value로 한다. 본 실시예는 제1 훈련 데이터에 포함된 특징 데이터의 특징 식별자에 따라 매핑 관계 테이블을 조회하고, 매핑 관계 테이블에 존재하지 않는 특징 식별자를 결정하고, 제1 네트워크 파라미터 중 그 존재하지 않는 특징 식별자에 의해 식별된 특징 데이터를 임베딩 처리하기 위한 네트워크 파라미터를 제1 목표 파라미터로 할 수 있다.
목표 메모리에 저장된 네트워크 파라미터는 예를 들면 슬롯(Slot)별로 저장될 수 있으며, 각 슬롯에 저장된 네트워크 파라미터는 하나의 특징 데이터에 대응하는 모든 네트워크 파라메터임을 이해할 수 있다. 즉, 네트워크 파라미터는 그룹별로 저장될 수 있으며, 하나의 특징 데이터에 대응하는 모든 네트워크 파라미터는 하나의 네트워크 파라미터 그룹을 구성한다. 이와 같이, 목표 메모리를 복수의 저장 슬롯으로 나눌 수 있으며, 각 저장 슬롯은 하나의 네트워크 파라미터 그룹을 저장하기 위한 것이다.
제1 목표 파라미터를 결정한 후, 본 실시예는 먼저 목표 메모리의 저장 공간이 충족한지 여부를 결정할 수 있으며, 저장 공간이 충분한 경우에만 제1 목표 파라미터를 목표 메모리에 쓸 수 있다.
예를 들면, 본 실시예는 CPU의 캐시 또는 램에서 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계를 유지할 수 있다. 해당 제1 매핑 관계는 매핑 테이블의 형식으로 저장될 수 있다. 네트워크 파라미터가 특징 데이터와 일일이 대응되기 때문에, 본 실시예는 특징 데이터의 특징 식별자를 사용하여 네트워크 파라미터를 표시하고 목표 메모리 중의 저장 슬롯에 대해 코드를 부여할 수 있다. 이와 같이, 제1 매핑 관계는 특징 데이터의 특징 식별자를 Key로 하고, 저장 슬롯의 코드(FId로 설정)를 Value로 하여, Feasign과 FId 간의 매핑 테이블로 표시할 수 있다. 이와 같이, 본 실시예는 해당 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정할 수 있다.
예를 들면, 목표 메모리의 저장 공간을 총 100개의 저장 슬롯으로 나누고, 해당 100개의 저장 슬롯의 코드는 0~99의 정수이며, 제1 매핑 관계에 코드가 0~49인 매핑 정보만 포함되어 있으면, 잔여 저장 슬롯이 50개인 것을 결정할 수 있다.
잔여 저장 슬롯이 결정된 후. 본 실시예는 해당 잔여 저장 슬롯과 제1 목표 파라미터 중의 네트워크 파라미터 그룹 수를 비교하여, 제1 목표 파라미터 중의 네트워크 파라미터의 그룹 수가 잔여 저장 슬롯보다 적으면, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족한다고 결정하고, CPU는 제1 목표 파라미터를 램에서 목표 메모리로 전이할 수 있다. 일 실시예에서, 목표 메모리에 네트워크 파라미터를 쓸 때, 위에서 설명한 그룹별 쓰기 방식을 사용할 수 있다.
본 개시의 실시예는 CPU에서 제1 매핑 관계를 유지하고, 제1 매핑 관계에 따라 목표 메모리의 잔여 저장 공간을 결정하고, 이에 기반하여 네트워크 파라미터의 쓰기를 제어함으로써, 그래픽 메모리의 저장 공간의 관리를 구현할 수 있으며, 모델 훈련 과정에서 임베딩 처리에 필요한 네트워크 파라미터가 너무 많아 그래픽 메모리에 미치는 거대한 압력을 피할 수 있으므로, 대규모의 모델 훈련이 하드웨어 조건에 대한 높은 요구를 줄이고, 대규모 모델 훈련을 구현하는 데 유리하다. 또한, 본 실시예에서 재1 매핑 관계는 CPU가 액세스할 수 있는 램 또는 캐시에 유지되기 때문에, 관련 기술에서 매핑 관계를 나타내는 해시 테이블을 그래픽 메모리에 저장하는 기술방안에 비해, 그래픽 메모리를 충분히 이용하여 모델 훈련을 진행할 수 있고, 그래픽 메모리에 대한 압력을 줄이고, CPU와 목표 프로세서 간의 통신 오버헤드를 줄이는 데 유리하다.
잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족한다고 결정할 때, 본 실시예는 또한 먼저 제1 목표 파라미터에 잔여 저장 슬롯 중의 저장 슬롯을 할당하고, 제1 목표 파라미터를 할당된 저장 슬롯에 쓸 수 있음을 이해할 수 있다. 예를 들면, 제1 목표 파라미터가 10개의 특징 데이터에 대응하는 네트워크 파라미터를 포함하고, 목표 메모리 중의 코드가 0~49인 저장 슬롯에 네트워크 파라미터가 이미 저장되어 있다면, 제1 목표 파라미터에 코드가 50~49인 저장 슬롯을 할당할 수 있다.
제1 목표 파라미터를 위해 저장 슬롯을 할당한 후, 할당된 저장 슬롯의 코드(즉, 저장 슬롯의 식별자 정보)와 제1 목표 파라미터의 식별자 정보(즉, 제1 목표 파라미터에 대응하는 특징 데이터의 식별자 정보)에 따라 제1 매핑 관계를 업데이트할 수 있다. 이와 같이, 제1 매핑 관계에서 저장 슬롯과 네트워크 파라미터 간의 대응 관계가 유지되도록 할 수 있다.
각 라운드의 훈련에서, 본 실시예는 또한 훈련 데이터의 예측 처리에 필요한 제3 네트워크 파라미터도 목표 프로세서의 컴퓨팅 코어 호출을 위해 목표 메모리에 쓰고, 호출 결과에 따라 해당 제3 네트워크 파라미터를 조정할 수 있음을 이해할 수 있다. 이는 일반적으로 예측 처리에 필요한 네트워크 파라미터가 조밀한 분포의 파라미터이고, 파라미터 수가 적기 때문에, 예측 처리에 필요한 모든 네트워크 파라미터를 목표 메모리에 써도 일반적으로 현저한 압력을 초래하지 않는다. 추천 모델에서, 해당 제3 네트워크 파라미터는 예를 들면 예측 네트워크에 포함된 네트워크 파라미터일 수 있으며, 예측 네트워크에는 예를 들면 다층 감지기(Multilayer Perceptron,MLP)가 포함될 수 있다.
딥러닝 모델의 훈련 과정은 일반적으로 세 부분으로 구성되었음을 이해할 수 있다. 제1 부분은 딥러닝 모델의 손실을 계산하기 위한 순방향 계산 과정이고, 제2 부분은 구배를 계산하기 위한 역방향 계산 과정이고, 제3 부분은 구배에 따라 딥러닝 모델의 네트워크 파라미터를 업데이트하는 과정이다. 컴퓨팅 코어는 구체적으로 딥러닝 모델의 네트워크 파라미터가 점차 수렴하도록 역방향 계산에서 얻은 구배에 따라 제1 네트워크 파라미터와 제3 네트워크 파라미터를 조정할 수 있다.
일 실시예에서, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하지 않을 때, CPU는 예를 들면 목표 메모리에서 일시적으로 필요하지 않은 네트워크 파라미터를 롤 아웃(roll out)하여, 제1 목표 파라미터에 충분한 공간을 남겨두고, 딥러닝 모델의 후속 훈련을 위해 조건을 제공할 수도 있다. 본 실시예를 통해, 목표 메모리 중의 캐시 공간의 크기를 동적으로 조정할 수 있고, 램 중의 제1 매핑 관계 등의 유지 관리와 결합하여 CPU와 목표 프로세서 간의 통신 오버헤드를 효과적으로 줄일 수 있다.
예시적으로, CPU는 또한 캐시 또는 램에서 저장 슬롯과 저장 슬롯 비트에 저장된 네트워크 파라미터의 파라미터 상태 간의 제2 매핑 관계를 유지하여 전이 가능 네트워크 파라미터를 결정하는 근거로 할 수 있다.
예를 들면, 네트워크 파라미터의 파라미터 상태에는 인용 상태가 포함될 수 있다. 네트워크 파라미터가 현재 훈련 라운드에 필요한 네트워크 파라미터이라면, 해당 인용 상태를 인용된 상태로 설정하고, 현재 훈련 라운드에 해당 네트워크 파라미터가 필요하지 않으면, 해당 인용 상태를 인용되지 않은 상태로 설정한다. 예를 들면, 인용 상태는 인용 카운트(Reference Count, Ref Count로 약칭)로 표시할 수 있으며, 인용 카운트의 값이 1이면 인용된 상태를 표시하고, 인용 기술의 값이 0이면 인용되지 않은 상태를 표시한다.
본 실시예에서, 제2 매핑 관계는 위에서 설명한 FId, FeaSign 및 RefCount 간의 대응 관계로 구성된 매핑 테이블로 표시되며, 각 FeaSign에는 각각의 RefCount가 대응되어 있으며, FeaSign식별자의 특징 데이터를 임베딩 처리할 때 필요한 네트워크 파라미터가 인용되었는지 여부를 표시하기 위한 것이다. 본 실시예는 제2 매핑 관계에서 RefCount 값이 0인 FeaSign에 대응하는 네트워크 파라미터를 전이 가능 네트워크 파라미터로 할 수 있다.
예를 들면, 네트워크 파라미터의 파라미터 상태에는 사용 횟수가 포함될 수 있다. 네트워크 파라미터가 하나의 훈련 라운드에서 호출되면, 해당 사용 횟수에 1을 가하고, 해당 사용 횟수의 초기 값은 0이 될 수 있다. 예를 들면, 사용 횟수는 빈도(Frequency Count, Freq Count로 약칭)로 표시할 수 있다.
본 실시예에서, 제2 매핑 관계는 위에서 설명한 FId, FeaSign 및 FreqCount간의 대응 관계로 구성된 매핑 테이블로 표시되며, 각 FeaSign에은 각각의 FreqCount가 대응되어 있으며, FeaSign식별자의 특징 데이터를 임베딩 처리할 때 필요한 네트워크 파라미터의 사용 횟수를 표시하기 위한 것이다. 본 실시예는 제2 매핑 관계에서 FreqCount 값이 한계치보다 작은 FeaSign에 대응하는 네트워크 파라미터를 전이 가능 네트워크 파라미터로 할 수 있다.
예를 들면, 네트워크 파라미터의 파라미터 상태에는 인용 상태뿐만 아니라 사용 횟수도 포함될 수 있다. 제2 매핑 관계는 위에서 설명한 FId, FeaSign 및 FreqCount 간의 대응 관계로 구성된 매핑 테이블로 표시되며, 각 FeaSign에는 각각의 RefCount와 FreqCount가 대응되어 있다. 본 실시예는 인용 상태가 인용되지 않았고 사용 횟수가 한계치보다 작은 FeaSign에 대응하는 네트워크 파라미터를 전이 가능 네트워크 파라미터로 할 수 있다.
상술한 실시예의 방법을 통해, 수요에 따라 필요하지 않는 네트워크 파라미터를 적시에 롤 아웃할 수 있으며, 딥러닝 모델의 훈련을 위해 충분한 저장 슬롯을 남겨, 딥러닝 모델의 훈련 효율을 향상시키는 데 유리하다.
예시적으로, 본 실시예는 또한 제1 네트워크 파라미터와 목표 메모리에 이미 저장된 네트워크 파라미터를 비교하여, 제1 네트워크 파라미터에 속하지 않고 인용 상태가 인용되지 않은 네트워크 파라미터를 전이 가능 네트워크 파라미터로 할 수 있다. 예를 들면, 전이 가능 네트워크 파라미터를 결정할 때, 예를 들면 제1 목표 파라미터에 대응하는 특징 데이터의 수에 따라 전이해야 하는 네트워크 파라미터의 그룹 수를 결정하여 목표 그룹 수로 할 수도 있다. 이어서, 인용되지 않은 상태에 있고 사용 빈도가 비교적 낮은 목표 그룹의 복수의 네트워크 파라미터를 전이 가능 네트워크 파라미터로 결정한다.
전이 가능 네트워크 파라미터를 결정한 후, 전이 가능 네트워크 파라미터를 목표 메모리에서 램으로 전이할 수 있다. 그리고 전이 가능 네트워크 파라미터가 롤 아웃된 후, 제1 목표 파라미터를 목표 메모리에 쓴다. 위에서 설명한 바와 같이, 제1 목표 파라미터를 목표 메모리에 쓸 때, 제1 목표 파라미터에 목표 메모리 중의 잔여 저장 슬롯을 할당할 수 있음을 이해할 수 있다. 여기서, 잔여 저장 슬롯에는 전이 가능 네트워크 파라미터가 위치한 저장 슬롯이 포함되어 있음을 이해할 수 있다. 이어서, 제1 목표 파라미터를 할당된 저장 슬롯에 쓴다. 저장 슬롯을 할당한 후, 본 실시예는 또한 제1 목표 파라미터에 대응하는 특징 데이터의 식별자 정보와 제1 목표 파라미터를 위해 할당한 저장 슬롯의 코드에 기반하여 위에서 설명한 제1 매핑 관계 및 제2 매핑 관계를 업데이트할 수 있다.
예를 들면, 제2 매핑 관계를 업데이트할 때, FId와 FeaSign 간의 매핑 관계를 업데이트해야 하는 외에도 제1 네트워크 파라미터의 파라미터 상태도 업데이트해야 한다. 예를 들면, 제1 네트워크 파라미터의 인용 상태를 인용된 상태로 변경할 수 있다. 즉 제1 네트워크 파라미터에 대응하는 FeaSign의 RefCount를 0에서 1로 변경할 수 있다. 예를 들면, 제1 네트워크 파라미터의 사용 횟수에 1을 가할 수 있다. 즉 제1 네트워크 파라미터에 대응하는 FeaSign의 FreqCount에 1을 가할 수 있다.
일 실시예에서, 컴퓨팅 코어가 제1 네트워크 파라미터의 조정을 완성한 후, 본 실시예는 또한 제2 매핑 관계를 업데이트하여 제1 네트워크 파라미터의 인용 상태를 업데이트할 수 있다. 구체적으로 제1 네트워크 파라미터에 대응하는 FeaSign의 RefCount를 1에서 0로 다시 변경할 수 있다.
일 실시예에서, 목표 메모리, 램 및 하드 디스크 프로세서로 구성된 3단계 캐시 구조를 사용하여 램 및 목표 메모리의 저장 압력을 감소할 수 있다. 전술에서 제1 목표 파라미터를 목표 메모리에 쓸 때, 램 또는 하드 디스크 메모리에서 해당 제1 목표 파라미터를 판독할 수 있다. 램은 하드디스크 메모리의 캐시일 수 있으며, 램 점유율이 비교적 높을 때, CPU는 램에 캐시된 데이터를 하드디스크 메모리에 쓸 수 있다. 이 3단계 캐시 구조의 설치를 통해 모델 훈련 과정 중의 네트워크 파라미터의 검색 및 인출을 가속화할 수 있으며, 대규모 딥 러닝 모델의 훈련을 구현하는 데 유리하다. 예를 들어, 지원하는 딥러닝 모델의 모델 파라미터 수가 T 레벨에 도달할 수 있다.
예를 들면, CPU는 전이 가능 네트워크 파라미터를 목표 메모리에서 램으로 전이할 때, 먼저 램의 잔여 저장 공간이 공간 한계치보다 작은지 여부를 결정할 수 있다. 공간 한계치보다 작으면, 램을 캐시로 하여 전이 가능 네트워크 파라미터를 램을 통해 하드 디스크 메모리에 쓸 수 있다. 즉, 전이 가능 네트워크 파라미터를 램에 캐시하고, 메모리에 캐시된 전이 가능 네트워크 파라미터를 하드 디스크 메모리에 쓴다.
일 실시예에서, 제1 네트워크 파라미터 중의 제1 목표 파라미터를 결정할 때, 예를 들면, 먼저 상술한 방식을 사용하여 제1 훈녈 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터를 결정할 수 있다. 구체적으로 먼저 제1 훈련 데이터에 포함된 특징 데이터를 결정하고, 특징 데이터에 대응하는 모든 네트워크 파라미터를 제1 네트워크 파라미터로 할 수 있다. 이어서, 제1 네트워크 파라미터를 중복 제거 처리하여, 중복 제거 후의 네트워크 파라미터를 얻는다. 예를 들면, 특징 데이터의 식별자 정보에 따라 제1 네트워크 파라미터에 대해 중복 제거를 진행할 수 있다. 이어서 다시 제1 매핑 관계와 중복 제거 후 네트워크 파라미터의 식별자 정보에 따라 중복 제거 후의 네트워크 파라미터에서 목표 메모리에 저장되지 않은 네트워크 파라미터를 결정하고, 결정된 네트워크 파라미터를 제1 목표 파라미터로 한다.
예를 들면, 먼저 특징 데이터의 식별자 정보에 따라 제1 훈련 데이터에 포함된 특징 데이터에 대해 중복 제거를 진행할 수도 있다. 이어서, 중복 제거 후 특성 데이터를 임베딩 처리할 때 필요한 네트워크 파라미터를 중복 제거 후 네트워크 파라미터로 한다.
제1 훈련 데이터는 일반적으로 복수의 훈련 데이터를 포함하기 때문에, 상이한 훈련 데이터에는 동일한 특징 데이터가 포함될 수 있다. 결정된 모든 제1 네트워크 파라미터를 모두 목표 메모리에 쓰면, 동일한 네트워크 파라미터를 목표 메모리의 복수의 슬롯에 쓰는 경우가 있다. 허지만 본 개시의 실시예는 제1 네트워크 파라미터에 대해 중복 제거를 진행함으로써, 상술한 상황을 피할 수 있고, 따라서 목표 메모리의 저장 공간의 낭비를 줄일 수 있으며, 목표 메모리의 저장 공간 이용률을 높이고, 대규모 모델 훈련 시의 목표 메모리에 가해지는 압력을 낮추고, 대규모 모델의 훈련을 구현하는데 유리하다.
CPU가 제1 목표 파라미터를 목표 메모리에 쓴 후, 예를 들면 제1 훈련 데이터에 기반한 훈련 태스크 정보를 목표 프로세서로 발송하여, 목표 프로세서의 컴퓨팅 코어가 목표 메모리에 저장된 제1 네트워크 파라미터에 따라 제1 훈련 데이터를 처리하고, 처리 결과에 따라 제1 네트워크 파라미터를 조정하도록 할 수도 있음을 이해할 수 있다. 이에 기반하여, 본 개시는 또한 다른 모델 처리 방법을 제공한다. 이하 도 3과 결합하여 해당 다른 모델의 훈련 방법에 대하여 상세히 설명하기로 한다.
도 3은 본 개시의 다른 실시예에 따른 딥러닝 모델의 훈련 방법의 흐름 개략도이다.
도 3에 도시된 바와 같이, 본 실시예의 딥러닝 모델의 훈련 방법(300)은 동작 S310 내지 동작 S340을 포함할 수 있다. 해당 모델 훈련 방법(300)은 위에서 설명한 전자 기기에 의해 실행될 수 있다.
동작 S310에서, 제1 프로세서는 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 메모리에 써야 하는 제1 목표 파라미터를 결정한다.
본 개시의 실시예에 따르면, 제1 프로세서는 위에서 설명한 CPU이고, 목표 메모리는 제2 프로세서에 포함된 메모리일 수 있다. 제2 프로세서는 위에서 설명한 목표 프로세서와 유사하며, 이 동작 S310의 구현 방식은 위에서 설명한 동작 S210과 유사하며, 여기서는 다시 설명하지 않는다.
동작 S320에서, 제1 프로세서는 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라, 목표 메모리 중의 잔여 저장 슬롯을 결정한다. 이 동작 S320은 위에서 설명한 동작 S220과 유사하며, 여기서는 다시 설명하지 않는다.
동작 S330에서, 제1 프로세서는 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 쓰고, 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송한다.
동작 S340에서, 제2 프로세서의 컴퓨팅 코어는 훈련 태스크 정보를 수신한 것에 응답하여, 제1 훈련 데이터에 따라 제1 네트워크 파라미터를 조정한다.
본 개시의 실시예에 따르면, 제1 목표 파라미터를 목표 메모리에 쓰는 구현 방식과 위에서 설명한 동작 S230의 구현 방식이 유사하며. 여기서는 다시 설명하지 않는다.
본 개시의 실시예에 따르면, 제1 프로세서는 제1 목표 파라미터를 목표 메모리에 쓴 후, 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송한다. 이와 같이, 제2 프로세서의 컴퓨팅 코어는 해당 훈련 태스크 정보를 수신한 후, 목표 메모리에 저장된 제1 네트워크 파라미터를 직접 호출하여 제1 훈련 데이터를 처리하고, 처리 결과에 따라 제1 훈련 데이터의 구배 데이터를 역산하여, 구배 데이터에 따라 제1 네트워크 파라미터를 조정할 수 있다.
본 개시의 실시예에 따르면, 제1 프로세서는 제1 목표 파라미터를 목표 메모리에 쓰는 과정에서 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송한다. 이와 같이, 제2 프로세서의 컴퓨팅 코어는 훈련 태스크 정보를 수신한 후, 목표 메모리에 저장된 네트워크 파라미터를 점진적으로 호출할 수 있으며, 필요한 네트워크 파라미터가 아직 목표 메모리에 쓰지 않았을 때, 목표 메모리에서 필요한 네트워크 파라미터를 읽을 수 있을 때까지 훈련 태스크의 실행을 일시 중단할 수 있다.
본 개시의 실시예에 따르면, 제1 목표 파라미터를 목표 메모리에 쓰는 동시에, 제1 프로세서는 제1 훈련 데이터를 제2 프로세서의 캐시에 쓸 수도 있다. 훈련 태스크 정보에는 예를 들면 순방향 계산의 태스크 정보, 역방향 계산의 태스크 정보 및 파라미터 업데이트의 태스크 정보 등이 포함될 수 있다. 순방향 컴퓨팅 태스크 정보는 예를 들면 제1 훈련 데이터의 호출 정보, 네트워크 파라미터의 호출 정보 및 손실 loss의 계산 정보 등을 포함할 수 있다. 네트워크 파라미터의 호출 정보에는 호출이 필요한 네트워크 파라미터의 식별자 정보 및 네트워크 파라미터의 호출 순서 정보 등이 포함될 수 있다. 역방향 계산의 태스크 정보에는 예를 들면 학습률 등 정보가 포함될 수 있으며, 파라미터 업데이트의 태스크 정보에는 예를 들면 스텝 사이즈 조정 등이 포함될 수 있다.
본 개시의 실시예는 CPU에서 제1 매핑 관계를 유지하고, 제1 매핑 관계에 따라 목표 메모리의 잔여 저장 공간을 결정하고, 이에 기반하여 네트워크 파라미터의 쓰기를 제어함으로써, 그래픽 메모리의 저장 공간의 관리를 구현하고, 모델 훈련 과정에서 임베딩 처리에 필요한 네트워크 파라미터가 너무 많아 그래픽 메모리에 미치는 거대한 압력을 피할 수 있으므로, 대규모의 딥러닝 모델 훈련이 하드웨어 조건에 대한 높은 요구를 줄이고, 대규모 딥러닝 모델 훈련을 구현하는 데 유리하다. 또한, 본 실시예에서 재1 매핑 관계는 CPU가 액세스할 수 있는 램 또는 캐시에 유지되기 때문에, 관련 기술에서 매핑 관계를 나타내는 해시 테이블을 그래픽 메모리에 저장하는 기술방안에 비해, 그래픽 메모리를 충분히 이용하여 모델 훈련을 진행할 수 있고, 그래픽 메모리에 대한 압력을 줄이고, CPU와 목표 프로세서 간의 통신 오버헤드를 절약하는 데 유리하다.
위에서 설명한 바와 같이, 각 라운드의 훈련에서 본 실시예는 또한 컴퓨팅 코어 호출을 위해 훈련 데이터의 예측 처리에 필요한 제3 네트워크 파라미터도 목표 프로세서의 목표 메모리에 쓰고, 호출 결과에 따라 해당 제3 네트워크 파라미터를 조정할 수 있음을 이해할 수 있다.
본 방안을 보다 잘 이해 하게 하기 위해, 이하 도 4와 결합하여 본 개시가 제공하는 모델 훈련 방법을 구현하기 위한 프로세서 캐시의 구조를 상세히 설명하기로 한다.
도 4는 본 개시의 실시예에 따른 프로세서 캐시의 구조 개략도이다.
도 4에 도시한 바와 같이, 실시예(400)에서 본 개시가 제공하는 딥러닝 모델의 훈련 방법을 구현하기 위해, 프로세서 캐시의 구조는 램(410) 및 목표 메모리(420)를 포함할 수 있다. 본 실시예는 목표 메모리(420)가 그래픽 카드 램인 것을 예로 들어 설명한다. 목표 메모리(420)는 임의의 고대역폭 메모리(High Bandwidth Memory,HBM)일 수 있음을 이해할 수 있다.
램(410)에는 제1 해시 테이블(411) 및 제2 해시 테이블(412)이 유지 관리될 수 있다. 제1 해시 테이블(411)은 위에서 설명한 제1 매핑 관계를 표시하기 위한 것이고, 제2 해시 테이블(412)는 위에서 설명한 제2 매핑 관계를 표시하기 위한 것이다. 구체적으로, 제1 해시 테이블 중의 Key는 특징 데이터의 식별자 정보 FeaSign이고, 제1 해시 테이블 중의 Value는 그래픽 카드 램(420) 중의 저장 슬롯의 번호이다. 제2 해시 테이블 중의 Key는 그래픽 카드 램(420)중의 저장 슬롯의 번호이고, Value는 특징 데이터의 라벨 정보(Feature Meta, FeaMeta로 약칭)이며, 해당 라벨 정보에는 특징 데이터의 식별자 정보 FeaSign, 특징 데이터를 임베딩 처리할 때 필요한 네트워크 파라미터의 인용 상태 RefCount 및 사용 횟수 FreqCount가 포함될 수 있다.
예를 들면, 본 실시예에서 그래픽 카드 램(420)가 최대로 100개의 특징 데이터를 임베딩 처리하는 100 그룹의 네트워크 파라미터의 저장을 허용하도록 설정되면, 그래픽 카드 램(420) 중의 저장 슬롯은 100개를 포함하며, 해당 100개의 저장 슬롯의 번호는 각각 0, 1, 2, ..., 98, 99이다. 각 저장 슬롯에 캐시되는 데이터는 한 그룹의 임베디드 레이어 네트워크 파라미터 및 이 그룹의 임베디드 레이어 네트워크 파라미터를 조정할 때 필요한 한 그룹의 하이퍼 파라미터를 포함할 수 있다.
프로세서CPU(430)은 위에서 설명한 딥러닝 모델의 훈련 방법의 관련 동작을 실행할 때, 제1 매핑 테이블을 조회하여 그래픽 카드 램(420)에서 사용 가능한 저장 슬롯의 수를 결정할 수 있으며, 훈련 데이터를 임베딩 처리할 때 필요한, 그래픽 카드 램(420)에 쓸 목표 파라미터에 대해 저장 슬롯을 할당하고, 수요에 따라 램(410)에 저장된 제1 해시 테이블(411) 및 제2 해시 테이블(412)의 정보에 대한 조회, 추가, 삭제 등 동작을 진행할 수 있다.
CPU(430)는 또한 딥러닝 모델의 훈련 방법 중의 관련 동작을 실행할 때, 그래픽 카드 램(420)에 캐시해야 하는 데이터를 할당된 저장 슬롯에 복사하여 인입하고, GPU와 같은 목표 프로세서가 네트워크 파라미터의 조정을 완성하고 저장 슬롯을 비워야 할 때, 그래픽 카드 램(420)에서 관련된 네트워크 파라미터를 복사하여 인출할 수 있다. 모델 훈련 과정에서, CPU(430)는 실질적으로 캐시 관리자의 역할을 한다.
일 실시예에서, 그래픽 카드 램(420)는 인공지능 칩 중의 메모리일 수 있다. 구체적으로, 쿤룬 2세대 칩의 메모리일 수도 있다. 이와 같이, 본 실시예는 딥러닝 모델의 훈련 방법을 실행할 때, 쿤룬 2세대 칩의 계산 능력을 충분히 이용할 수 있어, 대규모 추천 모델의 훈련을 구현하는 데 유리하다.
일 실시예에서, 하나의 전자 기기에 복수의 목표 프로세서를 설치하여, 목표 프로세서가 서로 다른 훈련 데이터에 기반하여 딥러닝 모델을 병렬 훈련하도록 하여, 모델 훈련 효율을 향상시킬 수 있다.
예를 들면, 위에서 설명한 목표 프로세서는 복수의 프로세서를 포함하며, 하나의 훈련 라운드에서 제1 훈련 데이터를 구성하는 복수 배치(batch)의 데이터를 획득할 수 있다. 본 실시예는 각 Batch의 데이터를 임베딩 처리하는 데 필요한 네트워크 파라미터만을 해당 각 batch에 대응하는 프로세서의 목표 메모리에 씀으로써, 목표 프로세서 중의 목표 메모리의 캐시 압력을 감소시킬 수 있다.
예를 들면, 본 실시예는 또한 제1 목표 파라미터를 목표 메모리에 쓸 때, 먼저 제1 목표 파라미터 중 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 파라미터를 결정하여, 해당 각 프로세서의 지정 파라미터로 할 수 있다. 이어서 소정 파라미터를 사용하여 제1 목표 파라미터 중 지정된 파라미터를 제외한 기타 파라미터를 대체하여 해당 각 프로세서에 대한 쓰기 예상 파라미터를 얻는다. 해당 쓰기 예상 파라미터 중의 파라미터 수는 제1 목표 파라미터의 파라미터 수와 동일하다. 이어서 제1 목표 파라미터에 할당된 저장 슬롯에 따라 쓰기 예상 파라미터를 각 프로세서에 포함된 목표 메모리에 쓴다. 이 방식을 통해, 복수의 목표 프로세서에 포함된 복수의 목표 메모리에 저장된 네트워크 파라미터의 수 및 네트워크 파라미터의 분포를 동일하게 할 수 있다. 소정 파라미터는 널값(null value)일 수 있다. 이와 같이, 목표 프로세서 중의 목표 메모리의 캐시 압력을 감소시킬 수 있는 외에, 복수의 목표 프로세서 상호간의 통신을 통해 네트워크 파라미터를 동기화하는 데 유리하다.
예를 들면, 복수의 목표 프로세서는 해당 목표 메모리에 저장된 네트워크 파라미터와 네트워크 파라미터가 위치한 슬롯에 따라, 계산하여 얻은 네트워크 파라미터의 구배 데이터를 동기화할 수 있다. 이와 같이, 목표 프로세서와 CPU 간의 통신 오버헤드를 줄일 수 있다.
구체적으로, 각 프로세서의 컴퓨팅 코어는 해당 각 프로세서에 대응하는 한 배치(batch)의 훈련 데이터와 네트워크 파라미터에 따라 순방향 계산 및 역방향 계산을 진행하여, 제1 네트워크 파라미터에 대한 구배 데이터를 얻을 수 있다. 예를 들면, 컴퓨팅 코어는 대응하는 한 배치의 훈련 데이터 중의 특징 데이터에 따라 목표 메모리에서 특징 데이터를 임베딩 처리 및 예측 처리 하기 위한 네트워크 파라미터를 획득하고, 네트워크 파라미터에 따라 특징 데이터를 처리하여 처리 결과를 얻을 수 있다. 이어서 처리 결과에 따라, 해당 한 배치의 데이터에 대한 딥러닝 모델의 손실 loss를 결정하여 순방향 계산 태스크를 완성한다. 이어서, 해당 손실과 특징 데이터의 임베딩 처리 및 예측 처리를 진행하기 위한 네트워크 파라미터에 따라 역방향 전파 알고리즘을 사용하여, 제1 네트워크 파라미터에 대한 구배 데이터를 연산하여 역방향 계산 태스크를 완성한다. 마지막으로, 제1 네트워크 파라미터가 위치하는 저장 슬롯과 기타 목표 프로세서의 통신에 기반하여 기타 목표 프로세서가 얻은 제1 네트워크 파라미터에 대한 구배 데이터를 획득한다. 동시에, 기타 목표 프로세서와의 통신을 통해 기타 목표 프로세서가 얻은 예측 처리를 위한 제3 네트워크 파라미터에 대한 구배 데이터를 얻을 수도 있다. 마지막으로 모든 구배 데이터를 종합하고, 종합 결과에 따라 제1 네트워크 파라미터와 제3 네트워크 파라미터를 조정하여 파라미터 업데이트 태스크를 완성한다.
이하 도 5와 결합하여 딥러닝 모델의 훈련 방법의 전체 흐름에 대하여 상세히 설명하기로 한다.
도 5는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 방법의 전체 흐름 개략도이다.
도 5에 도시된 바와 같이, 본 실시예의 딥러닝 모델의 훈련 방법(500)은 동작 S501 내지 동작 S518을 포함할 수 있다. 동작 S509 내지 동작 S512이 위에서 설명한 대상 프로세서에 의해 실행되는 외에 기타 동작은 모두 CPU에 의해 실행된다.
동작 S501에서, 대량의 데이터를 획득한다. 구체적으로 하드 디스크 메모리 또는 외장된 데이터 베이스에서 소정 수의 샘플 데이터를 획득하여 딥러닝 모델을 훈련할 수 있다.
동작 S502에서, 데이터를 전역에서 셔플하여, 배치 별로 얻은 훈련 데이터의 랜덤성을 향상시킨다.
동작 S503에서, 현재 훈련 라운드의 데이터를 획득한다. 예를 들면, 대량의 데이터에서 batch_size* 카드 수의 훈련 데이터를 랜덤으로 획득하여 위에서 설명한 제1 훈련 데이터로 할 수 있다. 카드 수는 전자 기기에 설치된 목표 프로세서의 개수를 말한다. batch_size는 실제 수요에 따라 설정할 수 있다. 예를 들면, 해당 batch_size는 목표 프로세서 중의 목표 메모리의 저장 용량에 따라 결정할 수 있다. 예를 들면, batch_size개의 훈련 데이터를 임베딩 처리하는 데 필요한 네트워크 파라미터의 수는 목표 메모리의 저장 용량과 관련될 수 있다. 구체적으로, 목표 메모리에 저장된 슬롯의 수는 임베딩 처리에 필요한 네트워크 파라미터의 그룹 수의 2배일 수 있다.
동작 S504에서, 목표 메모리의 잔여 저장 슬롯이 충족한지 여부를 결정한다. 충족하면 동작 S505 내지 동작 S513을 실행하고, 그렇지 않으면 동작 S514 내지 동작 S516을 실행한다. 복수의 목표 프로세서를 동일한 모델의 프로세서로 설정할 수 있고, 복수의 목표 프로세서에 포함된 복수의 목표 메모리의 저장 용량이 동일한 것임을 이해할 수 있다.
동작 S505에서, 제1 훈련 데이터에 포함된 특징 데이터의 FeaSign에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 네트워크 파라미터를 중복 제거하여 위에서 설명한 중복 제거 후 네트워크 파라미터를 얻는다.
동작 S506에서, 목표 메모리 중의 캐시 파라미터에 대한 증분을 결정한다. 즉, 제1 매핑 관계에 따라 중복 제거 후 네트워크 파라미터와 목표 메모리에 저장된 네트워크 파라미터를 비교하여, 목표 메모리에 써야 하는 네트워크 파라미터를 결정하고, 위에서 설명한 제1 목표 파라미터를 얻는다.
동작 S507에서, 목표 메모리에 써야 하는 네트워크 파라미터를 위해 저장 슬롯을 할당하고, 할당 결과에 따라 제1 매핑 관계와 제2 매핑 관계를 업데이트할 수 있으며, 구체적으로 제1 매핑 관계에 FId와 FeaSign의 매핑 관계를 추가하고, 제2 매핑 관계에 FId와 FeaMeta의 매핑 관계를 추가하고, 제1 네트워크 파라미터 중 각 그룹의 네트워크 파라미터 세트에 대응하는 특징 데이터의 FeaMeta 데이터를 업데이트할 수 있으며, 구체적으로 RefCount와 FreqCount에 모두 1를 가한다.
동작 S508에서, 목표 메모리에 새로 추가된 네트워크 파라미터를 복사하여 인입(Pull)할 수 있으며, 구체적으로 위에서 설명한 소정 파라미터에 따른 방식을 사용하여 각 목표 메모리에 대한 쓰기 예상 파라미터를 결정하고, 쓰기 예상 파라미터를 할당된 저장 슬롯에 쓸 수 있다. 이와 같이, 각 목표 프로세서는 목표 메모리 중의 네트워크 파라미터를 호출하고, 한 배치의 훈련 샘플에 의거하여 동작 S509 내지 동작 S512를 실행할 수 있다. 또한 예측 네트워크의 제3 네트워크 파라미터를 복수의 목표 프로세서 중의 각 목표 프로세서에 포함된 목표 메모리에 복사하여 인입할 수 있음을 이해할 수 있다.
동작 S509에서, 순방향 계산 태스크를 실행하여 딥러닝 모델의 해당 한 배치의 훈련 샘플에 대한 손실 loss를 얻는다.
동작 S510에서, 역방향 계산 태스크를 실행하여 손실 loss에 따라 한 배치의 훈련 샘플에 대한 구배 데이터를 계산하여 얻는다. 이 구배 데이터에는 제1 네트워크 파라미터의 구배 데이터와 제3 네트워크 파라미터의 구배 데이터가 포함되어야 한다.
동작 S511에서, 올리듀스 알고리즘(AllReduce Algorithm)을 사용하여 복수의 프로세서에서 얻은 구배 데이터를 통합한다. 제1 네트워크 파라미터의 구배 데이터를 통합할 때, 제1 네트워크 파라미터가 위치한 저장 슬롯을 참조로 해야 하며, 이는 서로 다른 목표 메모리에 저장된 제1 네트워크 파라미터의 값 차이로 인한 것임을 이해할 수 있다.
동작 S512에서, 통합 결과에 따라 목표 메모리에 저장된 네트워크 파라미터의 값을 업데이트한다. 통합 결과는 예를 들면 각 네트워크 파라미터에 대한 모든 구배 데이터의 평균치를 계산하여 최종 구배를 얻고 최종 구배에 따라 각 네트워크 파라미터의 값을 업데이트하는 것을 포함할 수 있다.
동작 S513에서, 현재 batch에 사용되는 네트워크 파라미터에 대응하는 특징 데이터의 RefCount 값에서 1를 뺀다. 여기까지, 목표 프로세서는 제1 훈련 데이터에 따라 네트워크 파라미터의 조정을 완성한다.
동작 S514에서, RefCount가 0이고 FreqCount가 낮은 전이 가능 네트워크 파라미터를 필터링한다. 전이 가능 네트워크 파라미터에 대응하는 특징 데이터의 RefCount는 0이고, FreqCount의 값은 횟수 한계치보다 낮다.
동작 S515에서, 목표 메모리에서 해당 전이 가능 네트워크 파라미터를 복사하여 인출하고, 복사하여 인출한 전이 가능 네트워크 파라미터를 램에 캐시한다.
동작 S516에서, 제1 매핑 관계 중의 전이 가능 네트워크 파라미터에 대응하는 특징 데이터의 FeaSign과 FId의 매핑 관계를 삭제한다. 동작 S516의 실행을 완성한 후, 되돌아가서 동작 S504를 실행하여 잔여 저장 슬롯이 충족한지 여부를 다시 결정할 수 있다.
본 개시의 실시예에 따르면, 목표 프로세서가 제1 훈련 데이터에 따라 네트워크 파라미터의 조정을 완성한 후, CPU는 예를 들면 동작 S517을 실행하여 획득한 대량 데이터가 모두 훈련되었는지 여부를 결정할 수 있다. 즉, 획득한 대량 데이터가 모두 훈련 데이터로 하여 딥러닝 모델의 훈련을 진행하였는지 여부를 결정한다. 그렇다면, 동작 S518을 실행하여 목표 메모리(예를 들면 HMB)에 저장된 업데이트된 네트워크 파라미터를 복사하고 인출하여 램 또는 하드 디스크 메모리에 쓴다. 그렇지 않으면, 되돌아가서 동작 S503을 실행하여 다음 훈련 라운드의 훈련을 시작한다.
본 개시가 제공하는 딥러닝 모델의 훈련 방법을 보다 잘 이해하게 하기 위해, 이하 도 6과 결합하여 제공하는 프로세서의 싱글 머신 멀티 카드의 통신 토폴로지를 상세히 설명하기로 한다.
도 6은 본 개시의 실시예에 따른 프로세서의 싱글 머신 멀티 카드의 통신 토폴로지 도면이다.
도 6에 도시된 바와 같이, 실시예(600)에서 싱글 머신 멀티 카드 구조의 전자 기기는 CPU 1개와 XPU 4개를 포함할 수 있으며, 예를 들면 XPU#0 내지 XPU#3을 포함할 수 있다. CPU는 예를 들면 PCIe(Peripheral Component Interconnect Express) 인터페이스를 통해 4개의 XPU와 통신 연결할 수 있다. 네트워크 인터페이스 제어기(Network Interface Controller, NIC)는 전자 기기가 근거리 통신망과 연결되도록 하기 위한 것이다. NIC는 예를 들면 이더넷을 통해 접속 스위치(TOR Switch)와 연결하여 전자 기기가 근거리 통신망에 액세스할 수 있도록 할 수 있다. 여기서, XPU는 쿤룬 칩을 가리킬 수 있고, 구체적으로 예를 들면 쿤룬 2세대 칩을 가리킬 수 있다.
4개의 XPU에서, XPU #0과 XPU #1 사이, XPU #0과 XPU #3 사이, XPU #1과 XPU #2 사이 및 XPU #2와 XPU #3 사이는 캐시 일관성 상호 연결 프로토콜(CCIX) 연결을 통해 프로세서 링을 형성할 수 있다. CCIX는 두 개 또는 두 개이상의 소자를 캐시 일관성의 방식을 통해 데이터의 칩간 상호 연결을 공유할 수 있다. 이 칩간 상호 연결의 구성은 올리듀스 알고리즘의 사용을 위한 기초를 제공한다. 도 6에 도시된 토폴로지 구조는 쿤룬 2세대 칩의 통신 토폴로지일 수 있으며, 해당 토폴로지 구조를 통해 일부 희소 파라미터(임베딩 처리된 네트워크 파라미터)를 지원하는 AllReduce 통신을 달성할 수 있음을 이해할 수 있다. 본 실시예는 또한 각 XPU가 모든 구배 데이터를 기타 XPU에 브로드캐스트하고, 기타 XPU의 모든 구배 데이터를 수신하는 방식으로 네트워크 파라미터를 조정할 수 있음을 이해할 수 있다. 해당 방식에서, XPU #0 브로드캐스트의 구배 데이터는 예를 들면 XPU #3, XPU #1 또는 CPU #1을 통해 XPU #2로 전달될 수 있다.
일 실시예에서, 도 6에 도시된 바와 같이, 딥러닝 모델을 훈련할 때, 두 개의 전자 기기 또는 더 많은 전자 기기를 사용할 수 있으며, 해당 복수의 전자 기기는 근거리 통신망을 통해 연결될 수 있으며, 복수의 전자 기기 중의 CPU는 공통 시스템 인터페이스(Common System Interface,QPI)을 통해 통신 연결될 수 있으며, QPI는 칩 간 상호 연결을 구현하는 아키텍처이다.
본 개시가 제공하는 네트워크 아키텍처에 기반하여, Sparse 파라미터의 AllReduce 통신을 구현할 수 있기 때문에, 복수의 목표 프로세서가 딥러닝 모델에 대한 동기화 훈련을 구현할 수 있고, 대규모 딥러닝 모델의 훈련도 구현할 수 있기 때문에, 통신 오버헤드를 줄일 수 있다.
본 개시의 실시예에 따르면, 비동기화 파이프라인 방식을 사용하여 딥러닝 모델을 훈련시켜 모델 훈련 효율을 향상시킬 수도 있다.
도 7은 본 개시의 실시예에 따른 비동기화 파이프라인 방식으로 모델을 훈련하는 원리 개략도이다.
도 7에 도시된 바와 같이, 실시예 (700)에서, 딥러닝 모델을 훈련할 때, 비동기화 방식의 파이프라인(Pipeline) 설계를 진행할 수 있다. 예를 들면, 목표 프로세서의 컴퓨팅 코어가 현재 훈련 라운드의 훈련 태스크(730)를 실행할 때, CPU는 다음 훈련 라운드의 훈련 데이터를 전처리(710)하고, 전처리를 완성한 후, 목표 메모리에 써야 하는 목표 파라미터를 위해 슬롯을 할당하고, 목표 파라미터를 목표 메모리에 복사, 즉 슬롯을 할당하고 데이터를 복사하는 태스크(720)를 실행할 수 있다. 이리하여, 컴퓨팅 코어가 현재 훈련 라운드의 훈련 태스크(730)를 실행한 후, 다음 훈련 라운드의 훈련 태스크를 직접 실행할 수 있다. 해당 방식을 통해, 모델 훈련 효율을 효과적으로 향상시키고, 인접한 두 라운드의 반복 훈련 사이의 대기 시간을 줄여, 목표 프로세서의 이용률을 향상시킬 수 있다.
구체적으로, 본 실시예(700)에서, CPU는 컴퓨팅 코어가 제1 훈련 데이터에 따라 제1 네트워크 파라미터를 훈련하는 것에 응답하여, 다음 훈련 라운드의 제2 훈련 데이터에 따라 제2 훈련 데이터의 임베딩 처리에 필요한 제2 네트워크 파라미 중 목표 메모리에 써야 하는 제2 목표 파라미터를 결정한다. 이어서 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정한다. 이어서 잔여 저장 슬롯이 제2 목표 파라미터의 저장 수요를 만족하면, 제2 목표 파라미터를 위해 저장 슬롯을 할당하고 제2 목표 파라미터를 목표 메모리에 쓴다.
본 개시가 제공하는 딥러닝 모델의 훈련 방법에 기반하여, 본 개시는 또한 딥러닝 모델의 훈련 장치를 제공하며, 이하 도 8과 결합하여 해당 장치를 상세히 설명하기로 한다.
도 8은 본 개시의 실시예에 따른 딥러닝 모델의 훈련 장치의 구조 블록도이다.
도 8에 도시된 바와 같이, 본 실시예의 딥러닝 모델의 훈련 장치(800)는 목표 파라미터 결정 모듈(810), 잔여 슬롯 결정 모듈(820) 및 파라미터 쓰기 모듈(830)을 포함할 수 있다.
목표 파라미터 결정 모듈(810)은 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함되는 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하기 위한 것이다. 일 실시예에서, 목표 파라미터 결정 모듈(810)은 위에서 설명한 동작 S210을 실행하기 위한 것일 수 있으며, 여기서는 다시 설명하지 않는다.
잔여 슬롯 결정 모듈(820)은 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하기 위한 것이다. 일 실시예에서, 잔여 슬롯 결정 모듈(820)은 위에서 설명한 동작 S220을 실행하기 위한 것일 수 있으며, 여기서는 다시 설명하지 않는다.
파라미터 쓰기 모듈(830)은 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 써 목표 프로세서에 포함된 컴퓨팅 코어가 제1 훈련 데이터에 따라 상기 제1 네트워크 파라메터를 조정하도록 하기 위한 것이다. 일 실시예에서, 파라미터 쓰기 모듈(830)은 위에서 설명한 동작 S210를 실행하기 위한 것일 수 있으며, 여기서는 다시 설명하지 않는다.
본 개시의 실시예에 따르면, 상기 장치(800)는, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 위해 잔여 저장 슬롯 중의 저장 슬롯을 할당하기 위한 슬롯 할당 모듈, 및 제1 목표 파라미터를 위해 할당된 저장 슬롯의 식별자 정보와 제1 목표 파라미터의 식별자 정보에 따라 제1 매칭 관계를 업데이트하기 위한 제1 관계 업데이트 모듈을 더 포함할 수 있다. 파라미터 쓰기 모듈(830)은 제1 목표 파라미터를 제1 목표 파라미터를 위해 할당된 저장 슬롯에 쓰기 위한 것이다.
본 개시의 실시예에 따르면, 상술한 목표 파라미터 결정 모듈(810)은, 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터를 결정하기 위한 필요 파라미터 결정 서브 모듈; 제1 네트워크 파라미터를 중복 제거 처리하여 중복 제거 후 네트워크 파라미터를 얻기 위한 중복 제거 서브 모듈; 및 제1 매핑 관계와 중복 제거 후 네트워크 파라미터의 식별자 정보에 따라 중복 제거 후 네트워크 파라미터 중 목표 메모리에 저장되지 않은 네트워크 파라미터를 결정하여 제1 목표 파라미터로 하기 위한 목표 파라미터 결정 서브 모듈을 포함할 수 있다.
본 개시의 실시예에 따르면, 상술한 장치(800)은, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하지 않는 것에 응답하여, 목표 메모리에 이미 저장된 네트워크 파라미터 중의 전이 가능 네트워크 파라미터를 결정하기 위한 전이 파라미터 결정 모듈; 및 전이 가능 네트워크 파라미터를 목표 메모리에서 램으로 전이하기 위한 파라미터 전이 모듈을 더 포함할 수 있다. 파라미터 쓰기 모듈(830)은 전이 가능 네트워크 파라미터가 램에 전이된 후, 제1 목표 파라미터를 목표 메모리에 쓰기 위한 것일 수도 있다.
본 개시의 실시예에 따르면, 전이 파라미터 결정 모듈은 목표 메모리의 저장 슬롯과 저장 슬롯에 저장된 네트워크 파라미터의 파라미터 상태 간의 제2 매핑 관계에 따라, 파라미터 상태가 목표 상태인 네트워크 파라미터를 전이 가능 네트워크 파라미터로 결정하기 위한 것이다. 파라미터 상태에는 인용 상태, 사용 횟수 중의 적어도 하나를 포함할 수 있으며, 목표 상태는 인용 상태가 인용되지 않은 상태, 사용 횟수가 횟수 한계치 미만인 상태 중의 적어도 하나를 포함할 수 있다. 상술한 장치(800)는, 전이 가능 네트워크 파라미터가 램으로 전이되는 것에 응답하여 제1 목표 파라미터를 위해 목표 메모리 중의 잔여 저장 슬롯을 할당하는 슬롯 할당 모듈, 및 제1 목표 파라미터를 위해 할당된 저장 슬롯과 제1 네트워크 파라미터 중 제1 목표 파라미터를 제외한 기타 파라미터가 위치한 저장 슬롯에 따라, 제2 매핑 관계를 업데이트하여 제1 네트워크 파라미터의 파라미터 상태를 업데이트하기 위한 제2 관계 업데이트 모듈을 더 포함할 수 있다.
본 개시의 실시예에 따르면, 제2 관계 업데이트 모듈은 또한 컴퓨팅 코어가 제1 네트워크 파라미터의 조정을 완성한 것에 응답하여, 제2 매칭 관계를 업데이트하여 제1 네트워크 파라미터의 인용 상태를 업데이트하기 위한 것일 수 있다.
본 개시의 일 실시예에 따르면, 상술한 파라미터 전이 모듈은 구체적으로 램의 잔여 저장 공간이 공간 한계치보다 작은 것에 응답하여, 전이 가능 네트워크 파라미터를 램을 경유하여 하드 디스크 메모리에 쓰기 위한 것일 수 있다.
본 개시의 실시예에 따르면, 상술한 목표 파라미터 결정 모듈(810)은 또한, 컴퓨팅 코어가 제1 훈련 데이터에 따라 제1 네트워크 파라미터를 훈련하는 것에 응답하여, 다음 훈련 라운드의 제2 훈련 데이터에 따라 제2 훈련 데이터의 임베딩 처리에 필요한 제2 네트워크 파라미터 중 목표 메모리에 써야 하는 제2 목표 파라미터를 결정하기 위한 것일 수도 있다. 상술한 잔여 슬롯 결정 모듈(820)은 또한 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하기 위한 것일 수 있다. 상술한 파라미터 쓰기 모듈(830)은 또한 잔여 저장 슬롯이 제2 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제2 목표 파라미터를 목표 메모리에 쓰기 위한 것일 수 있다.
본 개시의 실시예에 따르면, 목표 프로세서는 복수의 프로세서를 포함하며, 제1 훈련 데이터는 복수의 프로세서에 각각 대응하는 복수 배치의 데이터를 포함한다. 상술한 파라미터 쓰기 모듈(830)은, 복수의 프로세서 중의 각 프로세서에 대해 제1 목표 파라미터 중의 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하기 위한 지정 파라미터 결정 서브 모듈; 소정 파라미터 값을 사용하여 제1 목표 파라미터 중 지정 파라미터를 제외한 기타 파라미터를 대체하여 각 프로세서에 대한 쓰기 예상 파라미터를 얻기 위한 파라미터 대체 서브 모듈; 및 쓰기 예상 파라미터를 각 프로세서에 포함된 목표 메모리에 써, 각 프로세서에 포함된 컴퓨팅 코어가 각 프로세서에 대응하는 한 배치의 데이터에 따라 지정 파라미터를 훈련하도록 하기 위한 쓰기 서브 모듈을 포함할 수 있다.
본 개시의 실시예에 따르면, 복수 배치의 데이터 중의 각 배치의 데이터에 대해, 각 배치의 데이터의 임베딩 처리에 필요한 네트워크 파라미터의 수는 각 배치의 데이터에 대응하는 프로세서 중의 목표 메모리의 저장 용량과 관련된다.
본 개시의 실시예에 따르면, 상술한 파라미터 쓰기 모듈(830)은 또한 복수 배치의 데이터에 대한 예측 처리에 필요한 제3 네트워크 파라미터를 각 프로세서 중의 목표 메모리에 써, 각 프로세서에 포함된 컴퓨팅 코어가 각 프로세서에 대응하는 한 배치의 데이터에 따라 제3 네트워크 파라미터를 조정할 수 있도록 하기 위한 것이다.
본 개시의 다른 실시예가 제공하는 딥러닝 모델의 훈련 방법에 기반하여, 본 개시는 또한 딥러닝 모델의 훈련 시스템을 제공하며, 이하 도 9과 결합하여 해당 시스템을 상세히 설명하기로 한다.
도 9는 본 개시의 실시예에 따른 딥러닝 모델의 훈련 시스템의 구조 블록도이다.
도 9에 도시된 바와 같이, 본 실시예의 딥러닝 모델의 훈련 시스템(900)은 제1 프로세서(910)와 제2 프로세서(920)을 포함할 수 있으며, 제2 프로세서는 목표 메모리와 컴퓨팅 코어를 포함한다.
제1 프로세서(910)는, 현재 훈련 라운드의 제1 훈련 데이터에 따라 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하며, 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 목표 메모리 중의 잔여 저장 슬롯을 결정하며, 잔여 저장 슬롯이 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 제1 목표 파라미터를 목표 메모리에 쓰고, 제2 프로세서에 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송하도록 구성된다. 제1 프로세서는 위에서 설명한 동작 S310 내지 동작 S330을 실행하도록 배치될 수 있으며, 여기서는 다시 설명하지 않는다.
제2 프로세서(920)는 컴퓨팅 코어가 훈련 태스크 정보를 수신한 것에 응답하여, 제1 훈련 데이터에 따라 제1 네트워크 파라미터를 조정하도록 구성된다.
본 개시의 실시예에 따르면, 제2 프로세서는 복수의 프로세서를 포함하며, 제1 훈련 데이터는 복수의 프로세서에 각각 대응하는 복수 배치의 데이터를 포함한다. 상술한 제1 프로세서(910)는, 복수의 프로세서 중의 각 프로세서에 대해 제1 목표 파라미터 중 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하며, 소정 파라미터를 사용하여 제1 목표 파라미터에서 지정 파라미터를 제외한 기타 파라미터를 대체하여 각 프로세서에 대한 쓰기 예상 파라미터를 얻으며, 쓰기 예상 파라미터를 각 프로세서에 포함된 목표 메모리에 쓰는 방식으로 제1 목표 파라미터를 목표 메모리에 쓰도록 구성된다.
본 개시의 실시예에 따르면, 복수의 프로세서는 캐시 일관성 상호 연결 프로토콜을 통해 프로세서 링을 연결 형성한다. 복수의 프로세서 중의 각 프로세서는, 컴퓨팅 코어가 각 프로세서에 대응하는 한 배치의 데이터와 지정 파라미터에 따라 순방향 계산 및 역방향 계산을 진행하여 제1 네트워크 파라미터에 대한 구배 데이터를 얻으며, 제1 네트워크 파라미터가 위치한 저장 슬롯에 의거하여, 올리듀스 알고리즘을 사용하여 제1 네트워크 파라미터에 대한 구배 데이터 및 복수의 프로세서 중 기타 프로세서가 얻은 구배 데이터에 따라, 제1 네트워크 파라미터를 조정하는 방식으로 제1 네트워크 파라미터를 조정하도록 구성된다.
본 개시의 실시예에 따르면, 제2 프로세서는 쿤룬 코어 2세대 칩을 포함하는 인공지능 칩을 포함한다.
설명해야 할 것은, 본 개시의 기술 방안에서 언급된 사용자 개인 정보의 수집, 저장, 사용, 가공, 전송, 제공, 공개와 적용 등 처리는 모두 관련 법률과 법규의 규정에 부합되고 공서 양속을 위반하지 않는다는 것이다. 본 개시의 기술방안에서, 사용자의 개인 정보를 획득하거나 수집하기 전에 모두 사용자의 권한 부여 또는 동의를 획득하였다.
본 개시의 실시예에 따르면, 본 개시는 또한 전자 기기와 판독 가능 저장 매체와 컴퓨터 프로그램 제품을 제공한다.
도 10은 본 개시의 실시예의 딥러닝 모델의 훈련 방법을 실시하는 데에 사용될 수 있는 예시적인 전자 기기(1000)의 개략적인 블록도이다. 전자 기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 웍스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터 및 기타 적합한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 말한다. 전자 기기는 개인 디지털 처리, 셀룰러 전화, 지능형 폰, 웨어러블 디바이스 및 기타 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 말할 수도 있다. 본 명세서에서 나타낸 부품, 이들의 연결 및 관계, 및 이들의 기능은 단지 예시일 뿐이며, 본 명세서에서의 설명 및/또는 요구하는 본 출원의 구현을 한정하려 하는 것이 아니다.
도 10에 도시된 바와 같이, 기기(1000)는 읽기 전용 기억 장치(ROM)(1002)에 저장된 컴퓨터 프로그램 또는 저장 유닛(1008)에서 랜덤 액세스 메모리(RAM)(1003)로 로드된 컴퓨터 프로그램에 따라 다양한 적절한 동작 및 처리를 실행할 수 있는 컴퓨팅 유닛(1001)을 포함한다. RAM(1003)에는 저장 기기(1000)의 동작에 필요한 다양한 프로그램 및 데이터가 저장될 수 있다. 컴퓨팅 유닛(1001), ROM(1002) 및 RAM(1003)은 버스(1004)를 통해 서로 연결된다. 입력/출력(I/O)인터페이스(1005)도 버스(1004)에 연결된다.
기기(1000) 중의 복수의 부품은 I/O인터페이스(1005)와 연결되며, 예를 들면 키보드, 마우스 등과 같은 입력 유닛(1006); 예를 들면 다양한 유형의 디스플레이, 스피커 등과 같은 출력 유닛(1007); 예를 들면 자기 디스크, 시디롬 등과 같은 저장 유닛(1008) 및 예를 들면 랜 카드, 모뎀, 무선 통신 송수신기 등과 같은 통신 유닛(1009)을 포함한다. 통신 유닛(1009)은 기기(1000)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 통신 네트워크와 기타 장치를 통하여 정보/데이터를 교환할 수 있도록 허용한다.
컴퓨팅 유닛(1001)은 처리 및 컴퓨팅 능력을 갖는 다양한 범용 및/또는 전용 처리 유닛일 수 있다. 컴퓨팅 유닛(1001)의 일부 예는 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 다양한 전용 인공지능(AI) 컴퓨팅 칩, 머신 러닝 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 디지털 신호 처리 장치(DSP) 및 임의의 적절한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하지만 이에 한정되지 않는다. 컴퓨팅 유닛(1001)은 예를 들면 딥러닝 모델의 훈련 방법과 같은 상술한 다양한 방법과 처리를 실행한다. 예를 들면, 일부 실시예에서는 딥러닝 모델의 훈련 방법은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있으며, 이는 예를 들면 유형적으로 저장 유닛(1008)과 같은 기계 판독 가능 매체에 포함된다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(1002) 및/또는 통신 유닛(1009)을 통해 기기(1000)에 로드 및/또는 설치될수 있다. 컴퓨터 프로그램이 RAM(1003)에 로딩되고 컴퓨팅 유닛(1001)에 의해 실행될 경우, 상술한 딥러닝 모델의 훈련 방법 중의 하나 또는 복수의 동작을 실행할 수 있다. 선택적으로, 다른 실시예에서, 컴퓨팅 유닛(1001)은 기타 임의의 적절한 방식(예를 들면, 펌웨어에 의해)으로 딥러닝 모델의 훈련 방법을 실행하도록 배치될 수 있다.
본 명세서의 상술한 시스템 및 기술의 다양한 구현 방식은 디지털 전자 회로 시스템, 집적 회로 시스템, 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 특정 용도 표준 제품(ASSP), 시스템 온칩(SOC), 복합 프로그램 가능 논리 장치(CPLD), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시방식은 아래와 같은 것을 포함할 수 있다. 하나 또는 복수의 컴퓨터 프로그램에서 실시될 수 있으며, 해당 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템에서 실행 및/또는 해석될 수 있으며, 프로그램 가능 프로세서는 전용 또는 범용 프로그램 가능 프로세서일 수 있으며, 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터 및 명령어를 수신하고, 데이터 및 명령어를 해당 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치에 전송할 수 있다.
본 개시의 방법을 실행하기 위한 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 기타 프로그램 가능 데이터 처리 장치의 프로세서 또는 컨트롤러에 제공하여, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 때 흐름도 및/또는 블록도에서 규정한 기능/동작이 실시되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행되거나, 독립적인 소프트웨어 패키지로서 부분적으로 기계에서 실행되면서 부분적으로 원격 기계에서 실행되거나, 완전히 원격 기계 또는 서버에서 실행될 수 있다.
본 개시 내용의 맥락에서, 기계 판독 가능 매체는 명령어 실행 시스템, 장치 또는 설비에 의해 사용되거나, 명령어 실행 시스템, 장치 또는 설비와 결합하여 사용되도록 제공하는 프로그램을 포함하거나 저장할 수 있는 매체일 수있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 이들의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예에는 하나 또는 복수의 전선에 기반한 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 임의기억장치 (RAM), 읽기 전용 기억 장치 (ROM), 소거 가능 프로그램 가능 읽기 전용 기억 장치 (EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 읽기 전용 기억 장치 (CD-ROM), 광학 저장 장치, 자기 저장 장치 또는 이들의 임의의 적절한 조합을 포함할 수 있다.
사용자와의 인터랙션을 제공하기 위하여, 여기에 설명된 시스템 및 기술을 컴퓨터에서 실시할 수 있다. 이 컴퓨터는 사용자에게 정보를 표시하는 디스플레이 장치(예: CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 위치 결정 장치(예를 들면, 마우스 또는 트랙볼)를 구비한다. 다른 유형의 장치도 사용자와의 인터랙션을 제공하기 위해 사용될 수 있다. 예를 들면, 사용자에게 제공되는 피드백은 모든 형태의 감지 피드백(예를 들면, 시각 피드백, 청각 피드백 또는 촉각 피드백) 일 수 있고, 모든 형태(소리 입력, 음성 입력 또는 촉각 입력을 포함)를 이용하여 사용자로부터의 입력을 접수할 수 있다.
여기에 설명된 시스템 및 기술을 백그라운드 부품을 포함하는 컴퓨팅 시스템(예를 들면, 데이터 서버로 함) 또는 미들웨어 부품을 포함하는 컴퓨팅 시스템(예를 들면, 애플리케이션 서버) 또는 프론트 엔드 부품을 포함하는 컴퓨팅 시스템(예를 들면, 그래픽 유저 인터페이스 또는 웹 브라우저를 가지고 있는 사용자 컴퓨터이며, 사용자가 상기 그래픽 유저 인터페이스 또는 웹 브라우저를 통하여 여기에 설명된 시스템 및 기술의 실시 형태과 인터랙션할 수 있다) 또는 이러한 백그라운드 부품, 미들웨어 부품, 또는 프런트 엔드 부품의 모든 조합을 포함하는 컴퓨팅 시스템에서 실시할 수 있다. 임의의 형식 또는 매체의 디지털 데이터 통신(예를 들면, 통신 네트워크)을 통해 시스템의 부품을 서로 연결할 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함한다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함한다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터랙션한다. 클라이언트와 서버간의 관계는 해당 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 생성된다. 서버는 클라우드 컴퓨팅 서버 또는 클라우드 호스트라고도 하는 클라우드 서버일 수 있으며, 기존의 물리적 호스트와 VPS 서비스("Virtual Private Server" , 또는 "VPS"로 약칭)중의 관리가 어렵고 업무 확장성이 약한 단점을 해결하기 위한 클라우드 컴퓨팅 서비스 시스템중의 하나의 호스트 제품이다. 서버는 분산 시스템의 서버일 수도 있고, 블록체인과 결합된 서버일 수도 있다.
위에 나타낸 다양한 형태의 흐름을 사용하여 동작을 다시 순서 배열, 추가 또는 삭제할 수 있음을 이해해야 한다. 예를 들면, 본 출원에 기재된 각 동작은 본 개시에서 개시하는 기술 방안이 기대하는 결과를 구현할 수 있는 한, 병행하여 실행하거나 순차적으로 실행하거나 다른 순서로 실행할 수도 있으며, 본 명세서에서는 여기에 대해서 제한을 하지 않는다.
상술한 구체적인 실시방식은 본 출원의 청구범위에 대한 제한을 구성하지 않는다. 해당 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 설계 요구 및 기타 요소에 따라 다양한 수정, 조합, 서브 조합 및 대체를 진행할 수 있음을 이해해야 한다. 본 출원의 정신과 원칙내에서 이루어진 모든 수정, 동등한 대체 및 개선 등은 본 출원의 청구범위내에 포함되어야 한다.

Claims (33)

  1. 현재 훈련 라운드의 제1 훈련 데이터에 따라 상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것;
    상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 써, 상기 목표 프로세서에 포함된 컴퓨팅 코어가 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라메터를 조정하도록 하는 것을 포함하는 딥러닝 모델의 훈련 방법.
  2. 청구항1에 있어서,
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 위해 상기 잔여 저장 슬롯 중의 저장 슬롯을 할당하는 것; 및
    상기 제1 목표 파라미터를 위해 할당된 저장 슬롯의 식별자 정보와 상기 제1 목표 파라미터의 식별자 정보에 따라 상기 제1 매핑 관계를 업데이트하는 것을 더 포함하며,
    여기서, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰는 것은, 상기 제1 목표 파라미터를 상기 제1 목표 파라미터를 위해 할당된 저장 슬롯에 쓰는 것을 포함하는 딥러닝 모델의 훈련 방법.
  3. 청구항1에 있어서,
    상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터에서 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것은,
    상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터를 결정하는 것;
    상기 제1 네트워크 파라미터를 중복 제거 처리하여 중복 제거 후 네트워크 파라미터를 얻는 것; 및
    상기 제1 매핑 관계와 상기 중복 제거 후 네트워크 파라미터의 식별자 정보에 따라, 상기 중복 제거 후 네트워크 파라미터 중 상기 목표 메모리에 저장되지 않은 네트워크 파라미터를 결정하여 상기 제1 목표 파라미터로 하는 것을 포함하는 딥러닝 모델의 훈련 방법.
  4. 청구항1에 있어서,
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하지 않는 것에 응답하여, 상기 목표 메모리에 이미 저장된 네트워크 파라미터 중의 전이 가능 네트워크 파라미터를 결정하는 것;
    상기 전이 가능 네트워크 파라미터를 상기 목표 메모리에서 램(RAM)으로 전이하는 것; 및
    상기 전이 가능 네트워크 파라미터가 상기 램으로 전이된 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰는 것을 더 포함하는 딥러닝 모델의 훈련 방법.
  5. 청구항4에 있어서,
    상기 목표 메모리에 이미 저장된 네트워크 파라미터 중의 전이 가능 네트워크 파라미터를 결정하는 것은,
    상기 목표 메모리의 저장 슬롯과 저장 슬롯에 저장된 네트워크 파라미터의 파라미터 상태 간의 제2 매핑 관계에 따라, 파라미터 상태가 목표 상태인 네트워크 파라미터를 상기 전이 가능 네트워크 파라미터로 결정하는 것을 포함하며,
    여기서, 상기 파라미터 상태는 인용 상태, 사용 횟수 중의 적어도 하나를 포함하며, 상기 목표 상태는 인용 상태가 인용되지 않은 상태, 사용 횟수가 횟수 한계치 미만인 상태 중의 적어도 하나를 포함하며,
    상기 방법은,
    상기 전이 가능 네트워크 파라미터가 상기 램으로 전이된 것에 응답하여, 상기 제1 목표 파라미터를 위해 상기 목표 메모리 중의 잔여 저장 슬롯을 할당하는 것; 및
    상기 제1 목표 파라미터를 위해 할당된 저장 슬롯 및 상기 제1 네트워크 파라미터 중에서 상기 제1 목표 파라미터를 제외한 기타 파라미터가 위치한 저장 슬롯에 따라, 상기 제2 매핑 관계를 업데이트하여 상기 제1 네트워크 파라미터의 파라미터 상태를 업데이트하는 것을 더 포함하는 딥러닝 모델의 훈련 방법.
  6. 청구항5에 있어서,
    상기 컴퓨팅 코어가 상기 제1 네트워크 파라미터의 조정을 완성한 것에 응답하여, 상기 제2 매핑 관계를 업데이트하여 상기 제1 네트워크 파라미터의 인용 상태를 업데이트하는 것을 더 포함하는 딥러닝 모델의 훈련 방법.
  7. 청구항4에 있어서,
    상기 전이 가능 네트워크 파라미터를 상기 목표 메모리에서 램으로 전이하는 것은,
    상기 램의 잔여 저장 공간이 공간 한계치보다 작은 것에 응답하여, 상기 전이 가능 네트워크 파라미터를 상기 램을 통해 하드 디스크 메모리에 쓴 것을 포함하는 딥러닝 모델의 훈련 방법.
  8. 청구항1에 있어서,
    상기 컴퓨팅 코어가 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라미터를 훈련하는 것에 응답하여, 다음 훈련 라운드의 제2 훈련 데이터에 따라 상기 제2 훈련 데이터의 임베딩 처리에 필요한 제2 네트워크 파라미터 중 목표 메모리에 써야 하는 제2 목표 파라미터를 결정하는 것;
    상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및
    상기 잔여 저장 슬롯이 상기 제2 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제2 목표 파라미터를 상기 목표 메모리에 쓴 것을 더 포함하는 딥러닝 모델의 훈련 방법.
  9. 청구항1에 있어서,
    상기 목표 프로세서는 복수의 프로세서를 포함하며, 상기 제1 훈련 데이터는 상기 복수의 프로세서와 각각 대응하는 복수 배치(batch)의 데이터를 포함하며, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰는 것은,
    상기 복수의 프로세서 중의 각 프로세서에 대해 상기 제1 목표 파라미터 중 상기 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하는 것;
    소정 파라미터 값을 사용하여 상기 제1 목표 파라미터에서 상기 지정 파라미터를 제외한 기타 파라미터를 대체하여 상기 각 프로세서에 대한 쓰기 예상 파라미터를 얻는 것; 및
    상기 쓰기 예상 파라미터를 상기 각 프로세서에 포함된 목표 메모리에 써, 상기 각 프로세서에 포함된 컴퓨팅 코어가 상기 각 프로세서에 대응하는 한 배치의 데이터에 따라 상기 지정 파라미터를 훈련하도록 하는 것을 포함하는 딥러닝 모델의 훈련 방법.
  10. 청구항9에 있어서,
    상기 복수 배치의 데이터 중의 각 배치의 데이터에 대해, 상기 각 배치의 데이터의 임베딩 처리에 필요한 네트워크 파라미터의 수는 상기 각 배치의 데이터에 대응하는 프로세서 중의 목표 메모리의 저장 용량과 관련되는 딥러닝 모델의 훈련 방법.
  11. 청구항9에 있어서,
    상기 복수 배치의 데이터에 대한 예측 처리에 필요한 제3 네트워크 파라미터를 상기 각 프로세서 중의 목표 메모리에 써, 상기 각 프로세서에 포함된 컴퓨팅 코어가 상기 각 프로세서에 대응하는 한 배치의 데이터에 따라 상기 제3 네트워크 파라미터를 조정할 수 있도록 하는 것을 더 포함하는 딥러닝 모델의 훈련 방법.
  12. 제1 프로세서는 현재 훈련 라운드의 제1 훈련 데이터에 따라 상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것;
    제1 프로세서는 상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것;
    제1 프로세서는 상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰고, 상기 제2 프로세서에 상기 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송하는 것; 및
    상기 제2 프로세서의 컴퓨팅 코어는 상기 훈련 태스크 정보를 수신한 것에 응답하여, 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라미터를 조정하는 것을 포함하는 딥러닝 모델의 훈련 방법.
  13. 청구항12에 있어서,
    상기 제2 프로세서는 복수의 프로세서를 포함하며, 상기 제1 훈련 데이터는 상기 복수의 프로세서와 각각 대응하는 복수 배치의 데이터를 포함하며, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰는 것은,
    상기 복수의 프로세서 중의 각 프로세서에 대해 상기 제1 목표 파라미터 중의 상기 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하는 것;
    소정 파라미터를 사용하여 상기 제1 목표 파라미터에서 상기 지정 파라미터를 제외한 기타 파라미터를 대체하여 상기 각 프로세서에 대한 쓰기 예상 파라미터를 얻는 것; 및
    상기 쓰기 예상 파라미터를 상기 각 프로세서에 포함된 목표 메모리에 쓴 것을 포함하는 딥러닝 모델의 훈련 방법.
  14. 청구항13에 있어서,
    상기 복수의 프로세서는 캐시 일관성 상호 연결 프로토콜을 통해 프로세서 링을 연결 형성하며,
    상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라미터를 조정하는 것은,
    상기 복수의 프로세서 중의 각 프로세서의 컴퓨팅 코어는 상기 각 프로세서에 대응하는 한 배치의 데이터와 상기 지정 파라미터에 따라, 순방향 계산 및 역방향 계산을 진행하여 상기 제1 네트워크 파라미터에 대한 구배 데이터를 얻는 것; 및
    상기 각 프로세서는 상기 제1 네트워크 파라미터가 위치한 저장 슬롯에 의거하여, 올리듀스 알고리즘을 사용하여 상기 제1 네트워크 파라미터의 구배 데이터와 상기 복수의 프로세서 중의 기타 프로세서가 얻은 구배 데이터에 따라, 상기 제1 네트워크 파라미터를 조정하는 것을 포함하는 딥러닝 모델의 훈련 방법.
  15. 청구항12 내지 청구항14 중의 어느 하나에 있어서,
    상기 제2 프로세서는 쿤룬 코어 2세대 칩을 포함하는 인공지능 칩을 포함하는 딥러닝 모델의 훈련 방법.
  16. 현재 훈련 라운드의 제1 훈련 데이터에 따라, 상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 목표 프로세서에 포함된 메모리인 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하기 위한 목표 파라미터 결정 모듈;
    상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하기 위한 잔여 슬롯 결정 모듈; 및
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 써 상기 목표 프로세서에 포함된 컴퓨팅 코어가 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라메터를 조정하도록 하기 위한 파라미터 쓰기 모듈을 포함하는 딥러닝 모델의 훈련 장치.
  17. 청구항16에 있어서,
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 위해 상기 잔여 저장 슬롯 중의 저장 슬롯을 할당하기 위한 슬롯 할당 모듈; 및
    상기 제1 목표 파라미터를 위해 할당된 저장 슬롯의 식별자 정보와 상기 제1 목표 파라미터의 식별자 정보에 따라, 상기 제1 매핑 관계를 업데이트하기 위한 제1 관계 업데이트 모듈을 더 포함하며,
    여기서, 상기 파라미터 쓰기 모듈은 상기 제1 목표 파라미터를 상기 제1 목표 파라미터를 위해 할당된 저장 슬롯에 쓰기 위한 것인 딥러닝 모델의 훈련 장치.
  18. 청구항16에 있어서,
    상기 목표 파라미터 결정 모듈은,
    상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터를 결정하기 위한 필요 파라미터 결정 서브 모듈;
    상기 제1 네트워크 파라미터를 중복 제거 처리하여 중복 제거 후 네트워크 파라미터를 얻기 위한 중복 제거 모듈; 및
    상기 제1 매핑 관계와 상기 중복 제거 후 네트워크 파라미터의 식별자 정보에 따라 상기 중복 제거 후 네트워크 파라미터 중 상기 목표 메모리에 저장되지 않은 네트워크 파라미터를 결정하여 상기 제1 목표 파라미터로 하기 위한 목표 파라미터 결정 서브 모듈을 포함하는 딥러닝 모델의 훈련 장치.
  19. 청구항16에 있어서,
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하지 않는 것에 응답하여, 상기 목표 메모리에 이미 저장된 네트워크 파라미터 중의 전이 가능 네트워크 파라미터를 결정하기 위한 전이 파라미터 결정 모듈; 및
    상기 전이 가능 네트워크 파라미터를 상기 목표 메모리에서 램으로 전이하기 위한 파라미터 전이 모듈을 더 포함하며,
    여기서, 상기 파라미터 쓰기 모듈은 또한 상기 전이 가능 네트워크 파라미터가 상기 램으로 전이된 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰기 위한 것인 딥러닝 모델의 훈련 장치.
  20. 청구항19에 있어서,
    상기 전이 파라미터 결정 모듈은,
    상기 목표 메모리의 저장 슬롯과 저장 슬롯에 저장된 네트워크 파라미터의 파라미터 상태 간의 제2 매핑 관계에 따라, 파라미터 상태가 목표 상태인 네트워크 파라미터를 상기 전이 가능 네트워크 파라미터로 결정하기 위한 것이며,
    여기서, 상기 파라미터 상태는 인용 상태, 사용 횟수 중의 적어도 하나를 포함하며, 상기 목표 상태는 인용 상태가 인용되지 않은 상태, 사용 횟수가 횟수 한계치 미만인 상태 중의 적어도 하나를 포함하며,
    상기 장치는,
    상기 전이 가능 네트워크 파라미터가 상기 램으로 전이된 것에 응답하여, 상기 제1 목표 파라미터를 위해 상기 목표 메모리 중의 잔여 저장 슬롯을 할당하기 위한 슬롯 할당 모듈; 및
    상기 제1 목표 파라미터를 위해 할당된 저장 슬롯과 상기 제1 네트워크 파라미터 중 상기 제1 목표 파라미터를 제외한 기타 파라미터가 위치한 저장 슬롯에 따라, 상기 제2 매핑 관계를 업데이트하여 상기 제1 네트워크 파라미터의 파라미터 상태를 업데이트하기 위한 제2 관계 업데이트 모듈을 더 포함하는 딥러닝 모델의 훈련 장치.
  21. 청구항20에 있어서,
    상기 제2 관계 업데이트 모듈은 또한,
    상기 컴퓨팅 코어가 상기 제1 네트워크 파라미터의 조정을 완성한 것에 응답하여, 상기 제2 매핑 관계를 업데이트하여 상기 제1 네트워크 파라미터의 인용 상태를 업데이트하기 위한 것인 딥러닝 모델의 훈련 장치.
  22. 청구항19에 있어서,
    상기 파라미터 전이 모듈은,
    상기 램의 잔여 저장 공간이 공간 한계치보다 작은 것에 응답하여, 상기 전이 가능 네트워크 파라미터를 상기 램을 경유하여 하드 디스크 메모리에 쓰기 위한 것인 딥러닝 모델의 훈련 장치.
  23. 청구항16에 있어서,
    상기 목표 파라미터 결정 모듈은 또한 상기 컴퓨팅 코어가 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라미터를 훈련하는 것에 응답하여, 다음 훈련 라운드의 제2 훈련 데이터에 따라 상기 제2 훈련 데이터의 임베딩 처리에 필요한 제2 네트워크 파라미터 중 목표 메모리에 써야 하는 제2 목표 파라미터를 결정하기 위한 것;
    상기 잔여 슬롯 결정 모듈은 또한 상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하기 위한 것; 및
    상기 파라미터 쓰기 모듈은 또한 상기 잔여 저장 슬롯이 상기 제2 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제2 목표 파라미터를 상기 목표 메모리에 쓰기 위한 것인 딥러닝 모델의 훈련 장치.
  24. 청구항16에 있어서,
    상기 목표 프로세서는 복수의 프로세서를 포함하며, 상기 제1 훈련 데이터는 상기 복수의 프로세서에 각각 대응하는 복수 배치의 데이터를 포함하며, 상기 파라미터 쓰기 모듈은,
    상기 복수의 프로세서 중의 각 프로세서에 대해 상기 제1 목표 파라미터 중의 상기 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하기 위한 지정 파라미터 결정 서브 모듈;
    소정 파라미터 값을 사용하여 상기 제1 목표 파라미터에서 상기 지정 파라미터를 제외한 기타 파라미터를 대체하여 상기 각 프로세서에 대한 쓰기 예상 파라미터를 얻기 위한 파라미터 대체 서브 모듈; 및
    상기 쓰기 예상 파라미터를 상기 각 프로세서에 포함된 목표 메모리에 써, 상기 각 프로세서에 포함된 컴퓨팅 코어가 상기 각 프로세서에 대응하는 한 배치의 데이터에 따라 상기 지정 파라미터를 훈련하도록 하기 위한 쓰기 서브 모듈을 포함하는 딥러닝 모델의 훈련 장치.
  25. 청구항24에 있어서,
    상기 복수 배치의 데이터 중의 각 배치의 데이터에 대해, 상기 각 배치의 데이터의 임베딩 처리에 필요한 네트워크 파라미터의 수는 상기 각 배치의 데이터에 대응하는 프로세서 중의 목표 메모리의 저장 용량과 관련되는 딥러닝 모델의 훈련 장치.
  26. 청구항24에 있어서,
    상기 파라미터 쓰기 모듈은 또한,
    상기 복수 배치의 데이터에 대한 예측 처리에 필요한 제3 네트워크 파라미터를 상기 각 프로세서 중의 목표 메모리에 써, 상기 각 프로세서에 포함된 컴퓨팅 코어가 상기 각 프로세서에 대응하는 한 배치의 데이터에 따라 상기 제3 네트워크 파라미터를 조정할 수 있도록 하기 위한 것인 딥러닝 모델의 훈련 장치.
  27. 제1 프로세서와 제2 프로세서를 포함하고, 상기 제2 프로세서는 목표 메모리와 컴퓨팅 코어를 포함하며,
    상기 제1 프로세서는,
    현재 훈련 라운드의 제1 훈련 데이터에 따라 상기 제1 훈련 데이터의 임베딩 처리에 필요한 제1 네트워크 파라미터 중 상기 목표 메모리에 써야 하는 제1 목표 파라미터를 결정하는 것;
    상기 목표 메모리의 저장 슬롯과 네트워크 파라미터 간의 제1 매핑 관계에 따라 상기 목표 메모리 중의 잔여 저장 슬롯을 결정하는 것; 및
    상기 잔여 저장 슬롯이 상기 제1 목표 파라미터의 저장 수요를 만족하는 것에 응답하여, 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰고, 상기 제2 프로세서에 상기 제1 훈련 데이터에 기반한 훈련 태스크 정보를 발송하도록 구성되며,
    상기 제2 프로세서는, 상기 컴퓨팅 코어가 상기 훈련 태스크 정보를 수신한 것에 응답하여, 상기 제1 훈련 데이터에 따라 상기 제1 네트워크 파라미터를 조정하도록 구성된 딥러닝 모델의 훈련 시스템.
  28. 청구항27에 있어서,
    상기 제2 프로세서는 복수의 프로세서를 포함하며, 상기 제1 훈련 데이터는 상기 복수의 프로세서와 각각 대응하는 복수 배치의 데이터를 포함하며, 상기 제1 프로세서는,
    상기 복수의 프로세서 중의 각 프로세서에 대해 상기 제1 목표 파라미터 중 상기 각 프로세서에 대응하는 한 배치의 데이터를 임베딩 처리하는 데 필요한 지정 파라미터를 결정하는 것;
    소정 파라미터를 사용하여 상기 제1 목표 파라미터에서 상기 지정 파라미터를 제외한 기타 파라미터를 대체하여 상기 각 프로세서에 대한 쓰기 예상 파라미터를 얻는 것; 및
    상기 쓰기 예상 파라미터를 상기 각 프로세서에 포함된 목표 메모리에 쓰는 방식으로 상기 제1 목표 파라미터를 상기 목표 메모리에 쓰도록 구성된 딥러닝 모델의 훈련 장치.
  29. 청구항28에 있어서,
    상기 복수의 프로세서는 캐시 일관성 상호 연결 프로토콜을 통해 프로세서 링을 연결 형성하고, 상기 각 프로세서는,
    컴퓨팅 코어가 상기 각 프로세서에 대응하는 한 배치의 데이터와 상기 지정 파라미터에 따라, 순방향 계산 및 역방향 계산을 진행하여 상기 제1 네트워크 파라미터에 대한 구배 데이터를 얻고,
    상기 제1 네트워크 파라미터가 위치한 저장 슬롯에 의거하여, 올리듀스 알고리즘을 사용하여 상기 제1 네트워크 파라미터의 구배 데이터와 상기 복수의 프로세서 중의 기타 프로세서가 얻은 구배 데이터에 따라, 상기 제1 네트워크 파라미터를 조정하는
    방식으로 상기 제1 네트워크 파라미터를 조정하도록 구성된 딥러닝 모델의 훈련 장치.
  30. 청구항27 내지 청구항29 중의 어느 하나에 있어서,
    상기 제2 프로세서는 쿤룬 코어 2세대 칩을 포함하는 인공지능 칩을 포함하는 딥러닝 모델의 훈련 장치.
  31. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결된 메모리를 포함하며, 여기서,
    상기 메모리에는 적어도 하나의 프로세서에 의해 실행 가능한 명령어가 저장되어 있고, 상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 청구항1 내지 청구항15중 어느 한 항의 상기 딥러닝 모델의 훈련 방법을 실행할 수 있게 하는 전자 기기.
  32. 컴퓨터로 하여금 청구항1 내지 청구항15 중 어느 한 항의 딥러닝 모델의 훈련 방법을 실행하게 하기 위한 컴퓨터 명령어가 저장되어 있는 비휘발성 컴퓨터 판독 가능 저장 매체.
  33. 프로세서에 의해 실행될 시에 청구항1 내지 청구항15 중 어느 한 항의 딥러닝 모델의 훈련 방법을 구현하는 컴퓨터 프로그램/명령어를 포함하는 컴퓨터 프로그램 제품.
KR1020247009547A 2022-05-19 2022-09-27 딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램 KR20240046596A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202210559489.0 2022-05-19
CN202210559489.0A CN114861911B (zh) 2022-05-19 2022-05-19 深度学习模型的训练方法、装置、系统、设备和介质
PCT/CN2022/121697 WO2023221360A1 (zh) 2022-05-19 2022-09-27 深度学习模型的训练方法、装置、系统、设备和介质

Publications (1)

Publication Number Publication Date
KR20240046596A true KR20240046596A (ko) 2024-04-09

Family

ID=82639886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009547A KR20240046596A (ko) 2022-05-19 2022-09-27 딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램

Country Status (3)

Country Link
KR (1) KR20240046596A (ko)
CN (1) CN114861911B (ko)
WO (1) WO2023221360A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114861911B (zh) * 2022-05-19 2023-04-07 北京百度网讯科技有限公司 深度学习模型的训练方法、装置、系统、设备和介质
CN116187426B (zh) * 2022-11-09 2024-04-19 北京百度网讯科技有限公司 深度学习模型的模型参数多流广播方法及其装置
CN115965074B (zh) * 2022-11-28 2023-11-10 北京百度网讯科技有限公司 深度学习模型的训练方法、数据处理方法、装置和设备
CN116185307B (zh) * 2023-04-24 2023-07-04 之江实验室 一种模型数据的存储方法、装置、存储介质及电子设备
CN116934571A (zh) * 2023-07-20 2023-10-24 北京百度网讯科技有限公司 任务处理方法、装置、电子设备和存储介质
CN117743973B (zh) * 2024-02-19 2024-05-28 北京搜狐新媒体信息技术有限公司 一种参数处理方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015083B1 (en) * 2012-03-23 2015-04-21 Google Inc. Distribution of parameter calculation for iterative optimization methods
WO2017212459A1 (en) * 2016-06-09 2017-12-14 Sentient Technologies (Barbados) Limited Content embedding using deep metric learning algorithms
CN108053029B (zh) * 2017-12-27 2021-08-27 上海闪易半导体有限公司 一种基于存储阵列的神经网络的训练方法
CN109656722B (zh) * 2019-01-04 2021-05-11 Oppo广东移动通信有限公司 内存优化方法、装置、移动终端及存储介质
CN110532198B (zh) * 2019-09-09 2023-08-08 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置
KR20210043778A (ko) * 2019-10-11 2021-04-22 삼성전자주식회사 불휘발성 메모리 장치를 제어하도록 구성된 스토리지 컨트롤러의 동작 방법
CN112257844B (zh) * 2020-09-29 2022-04-26 浙江大学 一种基于混合精度配置的卷积神经网络加速器及其实现方法
CN113159284A (zh) * 2021-03-31 2021-07-23 华为技术有限公司 一种模型训练方法及装置
CN113408696A (zh) * 2021-05-17 2021-09-17 珠海亿智电子科技有限公司 深度学习模型的定点量化方法及装置
CN113505887B (zh) * 2021-09-12 2022-01-04 浙江大学 一种针对忆阻器误差的忆阻器存储器神经网络训练方法
CN113885691B (zh) * 2021-09-30 2024-06-11 上海阡视科技有限公司 芯片功耗调整、神经网络训练方法、装置以及芯片系统
CN114492794A (zh) * 2022-01-28 2022-05-13 北京百度网讯科技有限公司 用于处理数据的方法、装置、设备、介质和产品
CN114861911B (zh) * 2022-05-19 2023-04-07 北京百度网讯科技有限公司 深度学习模型的训练方法、装置、系统、设备和介质

Also Published As

Publication number Publication date
CN114861911A (zh) 2022-08-05
WO2023221360A1 (zh) 2023-11-23
CN114861911B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
KR20240046596A (ko) 딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램
CN110134636B (zh) 模型训练方法、服务器和计算机可读存储介质
CN112561078B (zh) 分布式的模型训练方法及相关装置
KR20200027413A (ko) 데이터 저장 방법, 장치 및 시스템
US20170091668A1 (en) System and method for network bandwidth aware distributed learning
WO2019062699A1 (zh) 资源调度方法、调度服务器、云计算系统及存储介质
CN106302780B (zh) 集群设备批量传输数据的方法、装置及系统、服务器
CN106339475A (zh) 一种海量数据的分布式存储系统
US20210119854A1 (en) Scalable statistics and analytics mechanisms in cloud networking
CN114911596B (zh) 针对模型训练的调度方法、装置、电子设备和存储介质
US20210174190A1 (en) Neural network training using a data flow graph and dynamic memory management
US11886225B2 (en) Message processing method and apparatus in distributed system
CN113344074B (zh) 模型训练方法、装置、设备及存储介质
CN111259060A (zh) 数据查询的方法及装置
CN112541513A (zh) 一种模型训练方法、装置、设备及存储介质
CN112671892B (zh) 数据传输方法、装置、电子设备及介质
CN110245024A (zh) 静态存储块的动态分配系统及其方法
WO2023174189A1 (zh) 图网络模型节点分类方法、装置、设备及存储介质
CN115879543A (zh) 一种模型训练方法、装置、设备、介质及系统
JP7279174B2 (ja) データ処理方法、装置、機器および記憶媒体
CN114925078A (zh) 数据更新方法、系统、电子设备及存储介质
CN110325980A (zh) 用于数据库绑定型应用的用户界面后端集群的扩展技术
CN113297327A (zh) 生成分布式id的系统和方法
CN113448940B (zh) 数据库扩容的方法和装置
CN113535673A (zh) 生成配置文件及数据处理的方法和装置