KR20230069763A - 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치 - Google Patents

신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치 Download PDF

Info

Publication number
KR20230069763A
KR20230069763A KR1020210190300A KR20210190300A KR20230069763A KR 20230069763 A KR20230069763 A KR 20230069763A KR 1020210190300 A KR1020210190300 A KR 1020210190300A KR 20210190300 A KR20210190300 A KR 20210190300A KR 20230069763 A KR20230069763 A KR 20230069763A
Authority
KR
South Korea
Prior art keywords
attention
self
query
electronic device
key
Prior art date
Application number
KR1020210190300A
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 서울대학교산학협력단
Priority to KR1020210190300A priority Critical patent/KR20230069763A/ko
Priority to US17/864,235 priority patent/US20230161783A1/en
Publication of KR20230069763A publication Critical patent/KR20230069763A/ko

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries
    • 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/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/048Activation functions

Abstract

본 개시에 따른 전자 장치는 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수 개의 입력 개체에 대해, 복수 개의 쿼리 중 제1 쿼리와 복수 개의 각각의 키 사이의 유사도 추정치를 계산하고, 상기 유사도 추정치를 임계 값과 비교하여 상기 복수 개의 키 중 일부 키를 후보로 선택하고, 상기 제1 쿼리에 대한 셀프 어텐션 연산에서 상기 후보에 포함된 키에 대한 유사도를 계산하고, 상기 상기 복수 개의 쿼리 각각에 대해 후보 선택 과정을 반복하여 상기 복수 개의 입력 개체에 대한 셀프 어텐션 연산을 수행할 수 있다.

Description

신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치{DEVICE FOR ACCELERATING SELF-ATTENTION OPRERATION IN NUERAL NETWORKS}
신경망 네트워크 연산을 수행하는 전자 장치에 연관되며, 보다 구체적으로는 신경망 네트워크의 셀프 어텐션 연산을 가속화할 수 있는 알고리즘 및 그 알고리즘이 수행되는 하드웨어 장치에 연관된다.
자연어 처리 및 컴퓨터 비전 테스크 등에 많이 쓰이고 있는 셀프 어텐션(self-attention) 연산은 자연어 처리 분야에서 주로 사용되는 매커니즘으로, 문장의 단어를 자신이 가지고 있는 문장의 모든 단어와 비교하고 각 단어의 문맥적 관련성을 가지도록 재조정하는 방식으로 동작할 수 있다. 셀프 어텐션 연산은 그의 유용한 쓰임새에 비해 요구되는 연산량이 많아서 처리 시간 및 하드웨어 자원이 많이 필요한 단점을 가진다.
실시 예들에 따르면, 셀프 어텐션 연산의 어텐션 스코어 값을 계산하는 행렬 내적 연산의 연산량을 줄이는 전자 장치가 제공될 수 있다.
실시 예들에 따르면, 쿼리와 키 사이의 유사도를 근사하여 쿼리와 유사도가 높은 키에 대해서만 어텐션 연산을 수행하는 전자 장치가 제공될 수 있다.
실시 예들에 따르면, 셀프 어텐션 연산을 가속하는 알고리즘을 수행하는 병렬 파이프라인 구조의 하드웨어 모듈로 구성되는 전자 장치가 제공될 수 있다.
본 개시의 일 측에 따른 전자 장치는, 메모리; 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수 개의 입력 개체에 대해, 복수 개의 쿼리 중 제1 쿼리와 복수 개의 각각의 키 사이의 유사도 추정치를 계산하고, 상기 유사도 추정치를 임계 값과 비교하여 상기 복수 개의 키 중 일부 키를 후보로 선택하고, 상기 제1 쿼리에 대한 셀프 어텐션 연산에서 상기 후보에 포함된 키에 대한 유사도를 계산하고, 상기 상기 복수 개의 쿼리 각각에 대해 후보 선택 과정을 반복하여 상기 복수 개의 입력 개체에 대한 셀프 어텐션 연산을 수행할 수 있다.
전술한 것 외의 다른 측면, 특징, 및 이점이 이하의 도면, 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
실시 예들에 따르면, 쿼리와 키 사이의 유사도 근사치를 이용하여 입력 개체 중 선택적 키에 대해서만 셀프 어텐션 연산을 수행함으로써 연산량을 줄일 수 있다.
실시 예들에 따르면, 쿼리와 키 사이의 각도를 추정함으로써 쿼리 키 사이의 내적 연산 대신에 어텐션 스코어를 훨씬 더 간단하고 적은 연산으로 근사하여 관련도가 높은 키들을 선별한 후 해당 키들에 대해서만 셀프 어텐션 연산을 수행한다. 관련도가 높은 키들을 잘 선별할 수 있는 알고리즘을 통해 학습 모델의 최종 정확도(accuracy) 손실을 최소화할 수 있다.
도 1은 일 실시 예에 따른 셀프 어텐션 매커니즘의 순서도를 도시한다.
도 2는 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 장치를 구성하는 요소들을 나타내는 블록도이다.
도 3은 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 방법의 순서도를 도시한다.
도 4는 일 실시 예에 따른 어텐션 스코어를 근사하는 방법의 순서도를 도시한다.
도 5는 일 실시 예에 따른 어텐션 스코어 근사치를 이용한 후보 선택 과정의 계산의 일 예시이다.
도 6은 일 실시 예에 따른 계층별 임계 값을 찾는 방법의 예시를 도시한다.
도 7은 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 알고리즘에 따라 동작하는 파이프라인 블록도를 도시한다.
도 8은 일실시 예에 따른 셀프 어텐션 연산을 가속하는 알고리즘을 실행하는 동안 가속 파이프라인 개념도를 도시한다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일 실시 예에 따른 셀프 어텐션 매커니즘을 도시한다.
일 실시 예에 따른 전자 장치(100)는 입력 개체(entity)에 대한 셀프 어텐션 연산을 다음 매커니즘에 따라 수행할 수 있다. 전자 장치(100)는 입력 개체(예: 문장의 단어)들을 입력 받은 후에 각각을 세가지 종류의 d 차원의 벡터로 변환하고 각각을 쿼리(query), 키(key), 값(value)이라고 지칭한다. 입력 개체들의 개수를 N이라고 했을 때, 입력 개체들의 쿼리, 키, 및 값을 모은 것을 각각 쿼리 행렬(query matrix Q), 키 행렬(key matrix K), 값 행렬(value matrix V)라고 하고 사이즈는 모두 N*d로 동일하다.
S101 단계에서, 전자 장치(100)는 쿼리와 키 사이의 유사도를 나타내는 어텐션 스코어(attention score)
Figure pat00001
를 계산할 수 있다. 전자 장치(100)는 쿼리 행렬Q과 키의 전치 행렬(transpose)KT의 행렬 곱셈을 통해 N*N개의 어텐션 스코어를 계산하고, N*N 사이즈의 어텐션 스코어 행렬(attention score matrix S)에 저장할 수 있다.
S102 단계에서, 전자 장치(100)는 어텐션 스코어 행렬S의 각 행(row)에 소프트맥스 정규화(softmax normalization)을 적용하여 스코어값들을 0과 1사이의 확률로 정규화하고, 정규화된 어텐션 스코어 행렬(normalized attention score matrix S')에 저장할 수 있다. 소프트맥스 정규화란, N개의 스코어가 있을 때 스코어 각각에 대해 값을 구하고 각각을 N개의 값의 합으로 나누어 정규화하는 것을 의미한다. 이 정규화를 거치고 나면 상대적으로 작은 값을 갖는 스코어들은 0 혹은 0에 아주 가까운 작은 값으로 수렴하고, 상대적으로 큰 값을 갖는 몇몇의 스코어들만 유의미한 확률값을 갖게 된다. 따라서 어텐션 스코어 값이 높은, 즉 쿼리와 키의 연관성이 높았던 쌍들이 유의미한 확률값을 갖게 된다.
S103 단계에서, 전자 장치(100)는 정규화된 어텐션 스코어 행렬S'을 이용하여 값 행렬(value matrix)V 행들의 가중치 합(weighted sum)을 구하면 셀프 어텐션 매커니즘의 결과값(output matrix O)이 된다. 이 과정은 정규화된 어텐션 스코어 행렬(N*N)과 값 행렬(N*d)의 행렬 곱셈을 통해 이루어진다. 이 과정을 거치고 나면 N개의 쿼리들이 각자 N개의 키 중에 자신과 가장 유사한 (즉, 관련 있는) 키들에 더 집중(attend)하게 된다.
셀프 어텐션 매커니즘의 연산량을 구해보면 S101 단계의 어텐션 스코어 계산에서
Figure pat00002
곱셈 누적(multiply-and-accumulate) 연산, S102 단계의 어텐션 스코어에 대한 정규화 과정에서
Figure pat00003
지수승 계산 연산 S103 단계의 값 행렬의 가중치 합 계산에서
Figure pat00004
곱셈 누적(multiply-and-accumulate) 연산이 필요하다. 연산량이 입력 개체의 개수인 N의 제곱에 비례하여 늘어나기 때문에 연산 비용이 굉장히 크고, 실제로 셀프 어텐션 매커니즘이 사용되는 모델들에서는 이러한 이유로 N의 크기를 작게 제한하고 있다. 이러한 한계점 때문에 자연어 처리 문제에서 분석해본 결과, 입력 문장의 길이가 제한되는 경우가 많고 모델 추론 시간에서 셀프 어텐션 매커니즘을 하는데 걸리는 시간이 상당한 부분을 차지하는 것을 확인하였다. 셀프 어텐션 매커니즘에서는 입력 개체와 관련이 없는 개체들은 최종 결과에 거의 영향을 미치지 않는다는 사실에 기반하여, 본 개시의 실시 예들에서는 모델의 최종 정확성(accuracy)은 최대한 손실이 없는 범위 안에서 셀프 어텐션 매커니즘의 필요 없는 연산을 제거하여 연산량을 상당히 줄이는 것을 목표로 한다. 일 실시 예에 따른 전자 장치(100)는 쿼리와 키 사이의 각도 추정을 이용하여 어텐션 스코어의 근사치를 먼저 계산함으로써 S101 단계의 어텐션 스코어 계산 연산을 키 행렬 K의 일부 키에 대해서만 실행할 수 있다.
도 2는 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 장치를 구성하는 요소들을 나타내는 블록도이다. 셀프 어텐션 연산을 가속하는 장치(100)(이하, '장치' 또는 '전자 장치'라 함)는 프로세서(110) 및 메모리(120)를 포함할 수 있다. 프로세서(110)는 해시 연산 모듈(111), 후보 선택 모듈(112), 어텐션 연산 모듈(113), 및 출력 모듈(114)을 포함할 수 있다. 메모리(120)는 해시 메모리(121) 및 행렬 메모리(122)를 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 1에 도시되는 구성 요소들 외에 다른 범용적인 구성 요소들이 전자 장치(100)에 더 포함될 수 있다. 전자 장치(100)는 bitwise xor, lookup table 참조, 곱셈 연산을 이용하여 어텐션 스코어를 근사할 수 있다. 일 실시 예에서, 다음 하드웨어 모듈에 의해 어텐션 스코어 근사를 할 수 있다.
전자 장치(100)는 전처리 단계와 실행 단계로 나누어 어텐션 스코어를 근사할 수 있다. 전처리 단계에서, 해시 연산 모듈(111)은 주어지는 키 행렬 K의 해시 값을 구하여 키 해시 메모리(121)에 저장할 수 있다. 또한 길이 연산 모듈에서는 키 행렬 K에 있는 N개의 키 각각의 길이를 계산한다. 실행 단계는 다음 4가지 세부 단계로 나눌 수 있다.
1) 해시 연산 모듈(111)은 쿼리 행렬 Q의 해시 값을 구하여 쿼리 해시 버퍼에 저장할 수 있다.
2) 후보 선택 모듈(112)은 근사 어텐션 스코어를 계산한 다음, 미리 학습된 임계값
Figure pat00005
와 비교할 수 있다. 비교 결과에 따라, 선택된 키(후보)에 대해서만 추후 셀프 어텐션 연산을 할 수 있다.
3) 어텐션 연산 모듈(113)은 선택된 후보 키들에 대해서만 정확한 어텐션 스코어를 계산할 수 있다(도 1의 S110 단계). 어텐션 연산 모듈(113)은 스코어 계산 후, 소프트맥스 정규화를 위해
Figure pat00006
값을 계산할 수 있다.
4) 출력 모듈(114)은 소프트맥스 정규화를 마무리하기 위해, 앞에서 구해진 값들을 정규화한 후 출력 메모리(122)에 저장할 수 있다.
전자 장치(100)는 쿼리 레벨 파이프라이닝, 각 파이프라인 단계에서 더 세분화된 파이프라이닝을 적용할 수 있다. 커스텀 float 타입, 룩업 테이블을 통한 연산 최적화 과정을 포함할 수 있다.
도 3은 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 방법의 순서도를 도시한다. 전자 장치(100)는 도 1의 S101 단계에서 기술한 어텐션 스코어 값을 훨씬 간단하고 적은 연산으로 근사할 수 있는 어텐션 스코어 근사 알고리즘을 이용하여 셀프 어텐션 매커니즘을 수행할 수 있다.
S310 단계에서, 전자 장치(100)는 입력 개체의 쿼리와 키 사이의 유사도 추정치(근사 값)을 계산할 수 있다. 유사도 근사 값은 다음과 같이 도출될 수 있다. N개의 입력 개체에 대해, d차원 쿼리, 키, 값 벡터로 변환하였을 때, 예를 들어, d차원의 i번째 쿼리
Figure pat00007
와 d차원의 j번째 키
Figure pat00008
에 대한 어텐션 스코어
Figure pat00009
는 하기 수학식 1과 같이 두 벡터의 내적 값으로 구할 수 있다.
Figure pat00010
Figure pat00011
Figure pat00012
Figure pat00013
사이의 각을 나타낸다. 쿼리
Figure pat00014
가 주어졌을 때,
Figure pat00015
값은 N개의 키에 대해서 고정되기 때문에
Figure pat00016
관계가 성립하게 된다.
일 실시 예에서, 전자 장치(100)는 먼저
Figure pat00017
의 값을 Sign Random Projection (SRP)을 통해서 근사할 수 있다. 먼저 d차원의 벡터 공간에 임의로(random) k개의 단위 벡터
Figure pat00018
를 정하고, 다음 수학식 2와 같이 벡터 x에 대한 해시 함수를 정의할 수 있다.
Figure pat00019
두 벡터 x, y의 해시값
Figure pat00020
를 구하고 나면 두 벡터 사이의 각
Figure pat00021
은 다음 수학식 3과 같이 근사할 수 있다.
Figure pat00022
수학식 3에서
Figure pat00023
직교 벡터(예를 들어 Gram-Schmidt Process로 생성된 직교 벡터)를 적용할 수 있다. 직교 벡터를 활용하여 둘 이상의 임의 벡터가 유사한 방향을 가리키게 되어 특정 방향을 불필요하게 강조하는 것을 방지할 수 있다. 해밍 거리에 따라 추정된 각도(estimator)는 편향되지는 않지만 여전히 오류를 포함한다. 오류를 보정하지 않는 경우, 대략 절반의 확률로 추정된 각도가 실제 각도보다 크게 적용될 수 있다. 각도를 과대 평가하면(즉, 두 벡터 간의 유사성을 과소평가하는 경우) 쿼리와 관계가 있는 키를 놓칠 수 있으므로, 추정된 각도에서 편향된 각도
Figure pat00024
만큼 보정할 수 있다. 편향과 보정을 고려하여 정리하면, 어텐션 스코어(attention score)는 다음 수학식 4와 같이 근사할 수 있다.
Figure pat00025
수학식 4와 같이 어텐션 스코어 값을 근사하게 되면 원래 d번의 곱셈 누적(multiply-and-accumulate)이 요구되던 연산이 간단한 비트 연산(bitwise xor), 룩업 테이블(lookup table) 참조 (코사인 값), 곱셈의 조합으로 바뀌게 된다.
S320 단계에서, 전자 장치(100)는 유사도 추정치 즉, 어텐션 스코어 근사 값과 임계 값(threshold)을 비교하여 후보를 선택할 수 있다. 임계 값은 미리 훈련하여 지정된 값으로, 어텐션 스코어 근사 값이 임계값
Figure pat00026
보다 큰 경우에만 유의미한 스코어 값을 갖는다고 볼 수 있다. 임계값
Figure pat00027
보다 적은 경우에는 추후 연산을 아예 진행하지 않음으로써 상당한 연산량의 감소가 된다. 상기 S310 단계는 후술할 도 4에서 상세히 설명하겠다.
S330 단계에서, 전자 장치(100)는 선택된 후보 키에 대해서만 셀프 어텐션 연산을 수행할 수 있다. 특정 쿼리에 대해서 유사도 근사 값에 기반하여 키가 셀프 어텐션 연산 결과에 영향을 미치는 유의미한 값인지 먼저 판단한 후, 유의미한 값에 해당하는 키 값에 대해서는 쿼리와의 정확한 어텐션 스코어를 계산함으로써 전체 셀프 어텐션 연산의 연산량을 감소시킬 수 있다.
도 4는 일 실시 예에 따른 어텐션 스코어를 근사하는 방법의 순서도를 도시한다. 전자 장치(100)는 특정 쿼리에 대해 키 값의 각도를 추정함으로써 어텐션 스코어를 근사할 수 있다. 어텐션 스코어는 쿼리 행렬과 키 행렬의 내적으로 연산할 수 있지만, 일 실시 예에 따른 전자 장치(100)는 행렬 곱셈보다 간단한 연산만으로 어텐션 스코어의 근사 값을 계산할 수 있다.
S401 단계에서, 전자 장치(100)는 쿼리 및 키에 대한 이진 임베딩을 할 수 있다. 전자 장치(100)는 이진 임베딩(binary embedding)이라고 하는 k-비트 해시를 활용하여 입력 개체(entity)의 키, 쿼리를 간결하게 표현할 수 있다. 실시 예들에서, 전자 장치(100)는 SRP(Sign random projection)를 이용하여 입력 개체를 k-비트 값으로 해시할 수 있다. SRP는 각 입력 벡터를 이진 해시 벡터에 매핑하는 방법인데, 이때 두 입력 벡터 사이의 각도 거리가 두 이진 해시 벡터사이의 각도거리와 유사하도록 매핑한다. 임의의 d차원 벡터
Figure pat00028
는 각 구성 요소를 정규 분포
Figure pat00029
에서 샘플링된 값으로 초기화할 수 있다. 입력 벡터
Figure pat00030
에 대해서
Figure pat00031
인 경우, 1값을 해시 비트 값으로 할당하고, 그렇지 않은 경우 0 값을 해시 비트 값으로 할당한다. 입력 벡터
Figure pat00032
에 대해, k개의 랜덤 벡터
Figure pat00033
를 k번 반복하여 k-비트 이진 해시함수
Figure pat00034
를 실행할 수 있다. 해시함수는 앞서 기술한 수학식 2와 같다. 해시함수에서
Figure pat00035
Figure pat00036
이면 값이 1이고, 그렇지 않으면 0의 값을 갖는다.
전자 장치(100)는 d차원 벡터 x에 대한 k 비트 해시 값을 얻기 위해 k x d 직교 행렬(즉, 행 벡터가 서로 직교하는 단위 벡터인 행렬)에 x를 곱한 다음 각 요소에 해시 비트를 양수인 경우 1, 그렇지 않은 경우 0으로 할당할 수 있다. 여기서, n 개의 벡터에 대한 해시 값을 계산하는데 ndk개의 곱셈(n(d-1)k 덧셈)이 필요하고, 전자 장치(100)는 입력 개체의 모든 쿼리와 모든 키에 대한 해시 계산을 수행하여 해시 연산에서 필요한 총 곱셈의 수는 2ndk 가 될 수 있다. 이 비용은 n이 k보다 훨씬 큰 수인 경우, 어텐션 스코어 내적 연산 및 값 행렬 계산 비용인 2n2d에 비해 무시할 정도이다. 그렇지만, 적어도 n이 제한된 신경망 네트워크 모델 (예: 작은 모델의 경우 n은 128)을 고려하면, 해시 계산을 최소화할 필요가 있다. 일 실시 예에서, 전자 장치(100)는 해시 계산을 위한 계산량을 최소화하기 위해 직교 행렬을 사용하여 행렬 곱셈을 효율적으로 계산하는 크로네커 (kronecker) 곱을 활용할 수 있다. 크로네커 곱셈은 두 행렬의 텐서 곱을 구체적으로 표현하는 행렬이다. 전자 장치(100)는 직교 행렬을 이용하여 해시 값을 효율적으로 계산할 수 있다.
전자 장치(100)는 각 키의 해시 값을 계산하면서, 키의 표준도 계산하여 저장할 수 있다.
S402 단계에서, 전자 장치(100)는 쿼리
Figure pat00037
와 모든 키 각각 (
Figure pat00038
) 사이의 해밍 거리를 계산할 수 있다. 우선 전자 장치(100)는 쿼리 해시 값
Figure pat00039
을 계산할 수 있다. 전자 장치(100)는 쿼리 해시와 모든 키 간의 해밍 거리를 계산할 수 있다.
S403 단계에서, 전자 장치(100)는 해밍 거리를 각도로 변환할 수 있다. 즉, 벡터 x와 y 사이의 각도를 추정할 수 있다. 직관적으로 k개의 랜덤 벡터들
Figure pat00040
중 하나로 각각 정의된 많은 랜덤 초평면에 대해 두 벡터가 같은 평면에 있는 경우, 그들은 더 작은 각도를 가질 가능성이 더 크다. 예를 들어, x1과 x2가 초평면 4개 중 3개의 임의의 같은 면에 있다면, 해밍 거리와 각도 거리가 모두 작다.
전자 장치(100)는 수학식 3을 이용하여 모든
Figure pat00041
에 대한 각도
Figure pat00042
로 변환하고, 바이어스
Figure pat00043
가 적용된다.
S404 단계에서, 전자 장치(100)는 근사 각도 각각에 대한 코사인 함수를 적용하고, S405 단계에서, 키 정규화 값을 곱할 수 있다. 이에 따른 결과 값은 정규화된 쿼리와 두 벡터의 유사성을 나타내는 키 간의 내적 추정치를 나타낸다. 다음 수학식 5는 상기 관계를 설명한다.
Figure pat00044
도 5는 일 실시 예에 따른 어텐션 스코어 근사치를 이용한 후보 선택 과정의 계산의 일 예시이다. 전자 장치(100)는 쿼리 행렬 Q와 키 행렬 K에 대해, 쿼리 Qx에 대해 다음 과정을 수행할 수 있다.
먼저 0 단계에서, K 행렬에 대해 해시 계산 및 정규화 계산을 할 수 있다.
1 단계에서, Q 행렬에 대해 해시 계산하고, 2 단계에서, 모든 K 행렬에 대해 해밍 거리를 계산할 수 있다.
3 단계에서, 해밍 거리를 각도로 변환하고, 바이어스를 제거할 수 있다.
4 단계에서, 두 각도에 대한 코사인 함수 값을 계산할 수 있다.
5 단계에서, 코사인 값에 키 정규화 값을 곱하고, 6 단계에서, 임계값과 비교하여 쿼리 Qx에 대해 모든 키 값 중 후보를 선택할 수 있다. 전자 장치(100)는 다음 쿼리 Qx+1에 대하여 0 내지 6 단계를 반복할 수 있다.
도 6은 일 실시 예에 따른 계층별 임계 값을 찾는 방법의 예시를 도시한다. 실시 예들에서, 유사도 추정치를 기반으로 특정 쿼리에 대한 관련 없는 키를 필터링하는 여러 가지 방법이 있다. 예를 들어, 어텐션 스코어 값을 정렬하고 특정 개수의 최고 점수 값들을 선택할 수 있다. 그러나, 정렬 알고리즘은 nlogn, 시간 복잡도를 갖기 때문에 특히 n이 큰 경우 하드웨어에서 효율적으로 구현하기 어렵다.
일 실시 예에서, 전자 장치(100)는 어텐션 스코어 값을 미리 정의된 임계 값 t와 비교하여 잠재적으로 관련이 없는 키를 필터링할 수 있다. 신경망 네트워크의 각 서브 레이어마다 다른 어텐션 스코어 분포를 가질 수 있기 때문에, 각 레이어마다 다른 임계 값 기준이 필요할 수 있다. 다만, BERT-large와 같은 모델은 셀프 어텐션 매커니즘을 사용하는 384개의 하위 레이어가 있고, 각 레이어별 임계 값에 대한 사용자 정의 하이퍼파라미터를 설정하는 것은 현실적으로 불가능하다. 일 실시 예에서, 전자 장치(100)는 사용자가 지정한 단일 하이퍼파라미터의 근사 정도에 해당하는 하위 계층별 임계 값을 자동으로 지정할 수 있다.
일 실시 예에서, 계층 별 임계 값을 찾기 위해 신경망 모델 추론을 실행하고 셀프 어텐션을 활용하는 각 계층의 특성을 검사할 수 있다.
전자 장치(100)는 특정 계층에 대한 셀프 어텐션 연산의 각 호출에 대해 각 쿼리에 대한 소프트맥스 정규화된 어텐션 스코어를 검사할 수 있다. 도 6을 참조하여 1 단계에서, 전자 장치(100)는 n개 입력 개체, 사용자 지정 하이퍼파라미터
Figure pat00045
에 대해서, 소프트맥스 정규화된 어텐션 스코어가
Figure pat00046
을 초과하는 키 세트를 식별한다. 하이퍼파라미터
Figure pat00047
는 근사 정도를 나타낸다. 예를 들어, 200개의 입력 개체에 대해 사용자가 하이퍼파라미터
Figure pat00048
를 2로 지정한 경우, 소프트맥스 정규화된 스코어가 0.01을 초과하는 키를 쿼리와 관련 있다고 간주한다는 의미가 된다. 하이퍼파라미터
Figure pat00049
가 클수록 적극적인 근사, 하이퍼파라미터
Figure pat00050
가 작을수록 보수적인 근사를 의미한다.
도 6을 참조하여 2 단계에서, 전자 장치(100)는 식별된 키 세트 중에서 소프트맥스 정규화된 어텐션 스코어 값이 최소인 키를 주목한다.
3 단계에서, 전자 장치(100는 쿼리 정규화
Figure pat00051
키 최대 키 정규화
Figure pat00052
값으로 나누어 어텐션 스코어를 정규화한다. 결과 값은 임계 값 t가 된다. 상기 과정을 각 계층에 대한 임계 값의 평균을 찾기 위해 훈련 세트의 여러 입력 데이터에 대해 반복한다. 추론을 실행하는 동안, 임계 값 t에 최대 키 정규화
Figure pat00053
값을 곱한 값을 유사도 추정치와 비교하여 키 행렬의 각 키가 현재 쿼리와 관련 있는지 여부를 결정한다. 하기 수학식 6은 쿼리
Figure pat00054
에 대해 키
Figure pat00055
에 대한 계산을 건너뛸 수 있는지 여부를 결정하는 조건을 지정할 수 있다.
Figure pat00056
도 7은 일 실시 예에 따른 셀프 어텐션 연산을 가속하는 알고리즘에 따라 동작하는 파이프라인 블록도를 도시한다. 도 7은 상위 레벨의 데이터 흐름도를 직관적으로 나타낸다. 전처리 구간(preprocessing phase)과 실행 구간(execution phase)이 각각 점선 및 실선으로 표시되었다. 파이프라인 블록도에서, 전자 장치(100)는 키 행렬, 쿼리 행렬 및 값 행렬을 입력받아 출력 행렬을 생성한다.
입력 데이터에 대해, 즉시 전처리 단계가 시작된다. 전처리 단계는 해시 연산(Hash Computation) 모듈(111)이 키 행렬의 각 행의 k 비트 해시 값을 계산하고, 키 해시 메모리(121)에 저장한다. 마찬가지로 각 키 벡터의 정규화는 정규화 계산(Norm Computation) 모듈을 사용하여 계산되고 키 정규화 메모리(121)에 저장된다. 전처리 단계가 끝나면, 쿼리 행렬의 각 행이 차례로 처리되어 한번에 출력 행렬의 단일 행을 출력하는 실행 단계가 시작된다. 특히, 각 쿼리에 대해 Pc 후보 선택(Candidate Selection) 모듈(112)은 각 주기마다 Pc 키의 해시 및 정규화 값을 검색하고 최대 Pc 선택한 후보 키 ID (즉, 행 ID)를 각 모듈의 출력 대기열에 출력한다. 그 다음, 선택된 키 ID가 어텐션 연산(Attention Computation) 모듈(113)로 전달된다. 어텐션 연산 모듈(113)은 선택한 키가 모든 주기의 출력(현재 쿼리에 대한)에 대한 기여도를 계산하고 누적한다. 이 특정 쿼리에 대해 선택한 모든 키가 계산되면 출력 모듈(Output Div)(114)이 이 출력에 대해 나눗셈 연산을 수행한다. 이 과정은 쿼리 행렬의 각 행(즉, 각 쿼리)에 대해 반복되며 마지막 쿼리가 처리되면 전체 과정이 종료된다.
도 8은 일실시 예에 따른 셀프 어텐션 연산을 가속하는 알고리즘을 실행하는 동안 가속 파이프라인 개념도를 도시한다. 도 7에서 Qx와 Qx+1을 순차적으로 처리하는 과정은 파이프라인 개념을 적용하여 하드웨어 모듈 실행을 동작시킬 수 있다. 주어진 n과 d에 대해 이 파이프라인은 전처리를 위해
Figure pat00057
반복(cycle) 시간이 소요된다. 실행 단계에서, 4개의 하드웨어 모듈은 각각 파이프라인에 병목 현상을 일으킬 수 있다. C가 후보 선택 모듈(112)에 의해 선택된 후보의 개수라고 할 때, 단일 쿼리를 처리하는데 소요되는 시간은 최대
Figure pat00058
가 될 수 있다. 병목 현상을 방지하고 처리량을 최대화하려면,
Figure pat00059
를 적절히 선택하여 파이프라인의 균형을 적절하게 조정해야 한다. 특히 어텐션 연산 모듈(113)(c 주기 소요) 이외의 모듈이 파이프라인 병목 현상이 되지 않도록 매개변수를 구성하는 것이 이상적이다. 예를 들어, 근사를 사용하여 최대 8개의 속도 향상(즉, 쿼리를 처리하는데 n/8 이상의 주기가 필요함)을 달성할 수 있는 파이프라인을 설계하는 경우, 각
Figure pat00060
Figure pat00061
는 n/8보다 작거나 같아야 한다. D가 64일 때,
Figure pat00062
와 같은 구성은 n이 96보다 크거나 같을 때, 위 요구사항을 충족할 수 있고, 이 구성에서 달성되는 속도 향상은
Figure pat00063
가 될 수 있다. 즉, 속도 향상은 어텐션 연산 모둘(113)에 대해 처리할 키(즉, c)의 수를 줄이는 근사 방식의 효율성에 의해 결정되는 경우가 많다(즉,
Figure pat00064
).
또한, 키/값 행령의 각 행이 독립적으로 처리될 수 있으므로, 일 실시 예에서 전자 장치(100)는 어텐션 연산 모듈(113)을 병렬로 활용할 수 있는 파이프라인을 확장할 수 있다.
이상에서 설명된 실시 예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 셀프 어텐션 연산을 가속하는 장치
110: 메모리
120: 프로세서

Claims (15)

  1. 전자 장치에 있어서,
    메모리; 및
    적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    복수 개의 입력 개체에 대해, 복수 개의 쿼리 중 제1 쿼리와 복수 개의 각각의 키 사이의 유사도 추정치를 계산하고, 상기 유사도 추정치를 임계 값과 비교하여 상기 복수 개의 키 중 일부 키를 후보로 선택하고,
    상기 제1 쿼리에 대한 셀프 어텐션 연산에서 상기 후보에 포함된 키에 대한 유사도를 계산하고,
    상기 상기 복수 개의 쿼리 각각에 대해 후보 선택 과정을 반복하여 상기 복수 개의 입력 개체에 대한 셀프 어텐션 연산을 수행하도록 하는 전자 장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로세서가 상기 입력 개체의 키 벡터 및 쿼리 벡터 사이의 각도를 추정하여 상기 유사도 추정치를 계산하는 전자 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 프로세서가 해밍 거리 계산, 곱셈 연산, 뺄셈 연산, 및 코사인 함수를 포함하여 상기 쿼리와 상기 키에 대한 상기 유사도 추정치를 계산하는 전자 장치.
  4. 제1항에 있어서,
    상기 적어도 하나의 프로세서가 상기 후보로 선택된 키에 대하여 상기 쿼리 행렬과 내적 연산에 따른 어텐션 스코어를 산출하는 전자 장치.
  5. 제1항에 있어서,
    상기 적어도 하나의 프로세서가 제1 하이퍼파라미터의 근사 정도에 기반하여 하나 이상의 계층별 임계 값을 선택하는 전자 장치.
  6. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 해시 연산 모듈, 후보 선택 모듈, 어텐션 연산 모듈 및 출력 모듈을 포함하고, 상기 메모리는 해시 메모리 및 행렬 메모리를 포함하도록 하드웨어 모듈을 구성하는 전자 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 복수 개의 파이프라인 구조로 상기 복수 개의 입력 개체의 각 연산을 처리하도록 하는 전자 장치.
  8. 셀프 어텐션 연산을 가속하는 방법에 있어서,
    복수 개의 입력 개체에 대해, 복수 개의 쿼리 중 제1 쿼리와 복수 개의 각각의 키 사이의 유사도 추정치를 계산하는 제1 단계;
    상기 유사도 추정치를 임계 값과 비교하여 상기 복수 개의 키 중 일부 키를 후보로 선택하는 제2 단계;
    상기 제1 쿼리에 대한 셀프 어텐션 연산에서 상기 후보에 포함된 키에 대한 유사도를 계산하는 제3 단계; 및
    상기 상기 복수 개의 쿼리 각각에 대해 상기 제1 내지 제3 단계를 반복하여 상기 복수 개의 입력 개체에 대한 셀프 어텐션 연산을 수행하는 제4 단계를 포함하는 셀프 어텐션 연산을 가속하는 방법.
  9. 제8항에 있어서,
    상기 제1 단계는 상기 입력 개체의 키 벡터 및 쿼리 벡터 사이의 각도를 추정하여 상기 유사도 추정치를 계산하는 셀프 어텐션 연산을 가속하는 방법.
  10. 제8항에 있어서,
    상기 제1 단계에서, 해밍 거리 계산, 곱셈 연산, 뺄셈 연산, 및 코사인 함수를 포함하여 상기 쿼리와 상기 키에 대한 상기 유사도 추정치를 계산하는 셀프 어텐션 연산을 가속하는 방법.
  11. 제8항에 있어서,
    상기 제4 단계는 상기 후보로 선택된 키에 대하여 상기 쿼리 행렬과 내적 연산에 따른 어텐션 스코어를 산출하는 셀프 어텐션 연산을 가속하는 방법.
  12. 제8항에 있어서,
    상기 제2 단계는 제1 하이퍼파라미터의 근사 정도에 기반하여 하나 이상의 계층별 임계 값이 선택되도록 하는 셀프 어텐션 연산을 가속하는 방법.
  13. 제8항에 있어서,
    상기 제1 내지 4 단계를 동작하는 전자 장치의 적어도 하나의 프로세서는, 해시 연산 모듈, 후보 선택 모듈, 어텐션 연산 모듈 및 출력 모듈을 포함하고, 상기 전자 장치의 메모리는 해시 메모리 및 행렬 메모리를 포함하도록 하드웨어 모듈을 구성하는 셀프 어텐션 연산을 가속하는 방법.
  14. 제8항에 있어서,
    상기 제1 내지 4 단계는, 복수 개의 파이프라인 구조로 상기 복수 개의 입력 개체의 각 연산을 처리하도록 하는 셀프 어텐션 연산을 가속하는 방법.
  15. 전자 장치에 의해, 제 8 항 내지 제 14 항 중 어느 한 항에 따른 셀프 어텐션 연산을 가속하는 방법을 실행하기 위한 적어도 하나의 명령을 포함하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 비 일시적 기록 매체.

KR1020210190300A 2021-11-12 2021-12-28 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치 KR20230069763A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210190300A KR20230069763A (ko) 2021-11-12 2021-12-28 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치
US17/864,235 US20230161783A1 (en) 2021-11-21 2022-07-13 Device for accelerating self-attention operation in neural networks

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020210155557 2021-11-12
KR20210155557 2021-11-21
KR1020210190300A KR20230069763A (ko) 2021-11-12 2021-12-28 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치

Publications (1)

Publication Number Publication Date
KR20230069763A true KR20230069763A (ko) 2023-05-19

Family

ID=86383777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210190300A KR20230069763A (ko) 2021-11-12 2021-12-28 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치

Country Status (2)

Country Link
US (1) US20230161783A1 (ko)
KR (1) KR20230069763A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102660892B1 (ko) * 2023-06-27 2024-04-26 주식회사 하이퍼엑셀 로터리 포지션 임베딩 연산을 위한 메모리 매핑 방법 및 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438011B2 (en) * 2010-11-30 2013-05-07 Microsoft Corporation Suggesting spelling corrections for personal names
US11106708B2 (en) * 2018-03-01 2021-08-31 Huawei Technologies Canada Co., Ltd. Layered locality sensitive hashing (LSH) partition indexing for big data applications
CN110674331A (zh) * 2018-06-15 2020-01-10 华为技术有限公司 信息处理方法、相关设备及计算机存储介质
US11853362B2 (en) * 2020-04-16 2023-12-26 Microsoft Technology Licensing, Llc Using a multi-task-trained neural network to guide interaction with a query-processing system via useful suggestions
US20220253447A1 (en) * 2021-02-08 2022-08-11 Robert Bosch Gmbh Interaction layer neural network for search, retrieval, and ranking
US20230061906A1 (en) * 2021-08-09 2023-03-02 Samsung Electronics Co., Ltd. Dynamic question generation for information-gathering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102660892B1 (ko) * 2023-06-27 2024-04-26 주식회사 하이퍼엑셀 로터리 포지션 임베딩 연산을 위한 메모리 매핑 방법 및 시스템

Also Published As

Publication number Publication date
US20230161783A1 (en) 2023-05-25

Similar Documents

Publication Publication Date Title
US20160358068A1 (en) Reducing computations in a neural network
US11423311B2 (en) Automatic tuning of artificial neural networks
US20190340533A1 (en) Systems and methods for preparing data for use by machine learning algorithms
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
US20220108157A1 (en) Hardware architecture for introducing activation sparsity in neural network
KR20180092810A (ko) 신경망 프루닝 및 재훈련을 위한 자동 임계값들
EP3785187A1 (en) Personalized gesture recognition for user interaction with assistant systems
WO2022006919A1 (zh) 基于激活定点拟合的卷积神经网络训练后量化方法及系统
US11281999B2 (en) Predictive accuracy of classifiers using balanced training sets
US10996976B2 (en) Systems and methods for scheduling neural networks by varying batch sizes
US20190378009A1 (en) Method and electronic device for classifying an input
US20230185998A1 (en) System and method for ai-assisted system design
JP2023535140A (ja) ターゲット・ドメインに対する転移学習プロセスに適合するソース・データセットを識別すること
US11410030B2 (en) Active imitation learning in high dimensional continuous environments
US20220019572A1 (en) Real-time anomaly detection
KR20230069763A (ko) 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치
US10558767B1 (en) Analytical derivative-based ARMA model estimation
US11573765B2 (en) Fused convolution and batch normalization for neural networks
US20230087774A1 (en) Parameter optimization method, electronic device, and storage medium
WO2023113693A2 (en) Optimal knowledge distillation scheme
US20210334128A1 (en) Asynchronous quantum information processing
Zhao et al. An effective model selection criterion for mixtures of Gaussian processes
CN114880108A (zh) 基于cpu-gpu异构架构的性能分析方法、设备以及存储介质
Lin et al. A risk ratio comparison of l0 and l1 penalized regressions
CN112463378A (zh) 一种服务器资产扫描方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal