목차
1. TorchRec이 우리에게 무엇을 가져다 줄 수 있나요? 추천 시스템은 회사의 현금 흐름과 직접적으로 연결되는 경우가 많고 시행착오의 비용이 매우 높기 때문에 모든 사람에게 필요한 것은 비즈니스에서 테스트한 프레임워크입니다. 이것이 PyTorch를 기반으로 한 일부 이전 추천 프레임워크가 널리 사용되지 않은 이유입니다. 공식 추천 프레임워크인 TorchRec은 2022년 1월에 출시되었습니다. Meta는 이미 이를 사용하여 Instagram Reels 비즈니스에서 1,250억 개의 매개변수 모델을 성공적으로 훈련하고 출시하여 비즈니스 테스트를 거친 PyTorch 프레임워크가 되었습니다. 인스타그램과 같은 대기업의 지원으로 우리는 더 많은 자신감을 갖게 되었고 마침내 PyTorch 기반 추천 프레임워크의 장점을 합리적으로 고려할 수 있게 되었습니다. " > 1. TorchRec이 우리에게 무엇을 가져다 줄 수 있나요? 추천 시스템은 회사의 현금 흐름과 직접적으로 연결되는 경우가 많고 시행착오의 비용이 매우 높기 때문에 모든 사람에게 필요한 것은 비즈니스에서 테스트한 프레임워크입니다. 이것이 PyTorch를 기반으로 한 일부 이전 추천 프레임워크가 널리 사용되지 않은 이유입니다. 공식 추천 프레임워크인 TorchRec은 2022년 1월에 출시되었습니다. Meta는 이미 이를 사용하여 Instagram Reels 비즈니스에서 1,250억 개의 매개변수 모델을 성공적으로 훈련하고 출시하여 비즈니스 테스트를 거친 PyTorch 프레임워크가 되었습니다. 인스타그램과 같은 대기업의 지원으로 우리는 더 많은 자신감을 갖게 되었고 마침내 PyTorch 기반 추천 프레임워크의 장점을 합리적으로 고려할 수 있게 되었습니다.
2. 수백억 개의 모델에 대한 실험 결과 " > 2. 수백억 개의 모델에 대한 실험 결과
기술 주변기기 일체 포함 PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

Apr 12, 2023 pm 12:13 PM
torchrec 모델 훈련

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

이 글에서는 PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육을 소개합니다. 다른 딥러닝 분야와 달리 추천 시스템은 여전히 ​​Tensorflow를 교육 프레임워크로 사용하는데, 이는 대다수 개발자로부터 비판을 받고 있습니다. 추천 교육을 위해 PyTorch를 활용하는 사례도 있지만 규모가 작고 실제 사업 검증이 없어 사업 얼리 어답터 홍보가 어렵다.

2022년 2월, PyTorch 팀은 공식 추천 라이브러리인 TorchRec을 출시했습니다. 우리 팀은 5월부터 내부 업무에서 TorchRec을 시도하기 시작했고 TorchRec 팀과 일련의 협력을 시작했습니다. 몇 달 간의 시험 사용 동안 우리는 TorchRec의 많은 장점을 경험했으며, TorchRec이 초대형 모델에서는 여전히 일부 단점을 갖고 있다고 생각합니다. 이러한 단점을 보완하기 위해 확장된 기능을 설계했습니다. 2022년 9월, 우리가 설계한 확장 기능 동적 임베딩이 공식적으로 TorchRec의 메인 브랜치에 통합되었으며 공식 팀과 함께 지속적으로 최적화되고 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습


1. TorchRec이 우리에게 무엇을 가져다 줄 수 있나요? 추천 시스템은 회사의 현금 흐름과 직접적으로 연결되는 경우가 많고 시행착오의 비용이 매우 높기 때문에 모든 사람에게 필요한 것은 비즈니스에서 테스트한 프레임워크입니다. 이것이 PyTorch를 기반으로 한 일부 이전 추천 프레임워크가 널리 사용되지 않은 이유입니다. 공식 추천 프레임워크인 TorchRec은 2022년 1월에 출시되었습니다. Meta는 이미 이를 사용하여 Instagram Reels 비즈니스에서 1,250억 개의 매개변수 모델을 성공적으로 훈련하고 출시하여 비즈니스 테스트를 거친 PyTorch 프레임워크가 되었습니다. 인스타그램과 같은 대기업의 지원으로 우리는 더 많은 자신감을 갖게 되었고 마침내 PyTorch 기반 추천 프레임워크의 장점을 합리적으로 고려할 수 있게 되었습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

TorchRec은 팀원마다 다양한 혜택을 제공합니다. 우선, 팀 내 대다수의 알고리즘 엔지니어는 PyTorch 권장 프레임워크를 통해 모든 사람이 마침내 CV 및 NLP 엔지니어가 경험한 보다 인간적인 동적 그래픽 및 디버깅 경험을 즐길 수 있게 되었습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

또한 PyTorch1.8 기반 모델은 코드 한 줄도 변경하지 않고 최신 버전 1.13에서 실행할 수 있는 PyTorch의 뛰어난 호환성을 통해 알고리즘 엔지니어가 최종적으로 프레임워크를 자신있게 업그레이드할 수 있습니다. 최신 프레임워크 기능과 더 나은 성능을 제공합니다. 반면에 TensorFlow 기반의 일부 권장 프레임워크는 특정 버전의 TensorFlow에서 멈추는 경우가 많습니다. 예를 들어 많은 팀에서는 여전히 TensorFlow 1.x 기반의 내부 프레임워크를 사용할 수 있습니다. TensorFlow 1.x는 2021년 1월에 유지 관리를 중단했습니다. 즉, 지난 2년 동안 모든 새로운 버그와 새로운 기능이 제대로 지원되지 않을 것임을 의미합니다. 사용 중에 발생한 문제는 내부 유지 관리 팀에서만 수리할 수 있으며, 이로 인해 추가 비용이 발생합니다. 적시에 프레임워크를 업그레이드하면 속도가 무료로 향상될 수도 있습니다. PyTorch의 상위 버전은 상위 CUDA 버전과 일치하는 경우가 많을 뿐만 아니라 훈련 속도를 더욱 높이고 훈련 효율성을 향상시킬 수 있는 CUDA 그래프와 같은 몇 가지 새로운 기능도 있습니다.

알고리즘 엔지니어 외에도 프레임워크 팀도 추천 팀의 중요한 부분입니다. 사내 프레임워크팀에서는 오픈소스 프레임워크 선정 후 내부 필요에 따라 2차 개발을 진행하게 됩니다. 이들에게 권장되는 PyTorch 프레임워크는 더욱 효율적인 개발 경험으로 이어질 것입니다. 많은 기존 TensorFlow 권장 프레임워크는 C++ 세션 기반 확장을 만들기 위해 TF 제공을 모방합니다. 이 설계 솔루션은 당시 매우 진보된 솔루션으로 간주되었습니다. 그러나 이를 위해서는 코드 한 줄만 변경하려면 전체 TensorFlow를 완전히 컴파일해야 합니다. 시간이 많이 걸리고, 인트라넷에서 외부 종속성을 다운로드하는 등의 사소한 문제까지 해결해야 하고, 개발 경험도 그다지 좋지 않습니다.

PyTorch는 Python 철학을 핵심으로 삼고 모든 사람이 자유롭게 확장할 수 있기를 바라기 때문에 PyTorch를 사용할 때 이러한 문제가 발생하지 않습니다. 2차 개발을 할 때는 pybind11과 같은 상대적으로 성숙한 Python 라이브러리로 캡슐화하고 라이브러리를 동적 링크 라이브러리로 패키징한 다음 로드하기만 하면 됩니다. 이러한 방식으로 전체 컴파일 속도는 자연스럽게 훨씬 빨라지고 학습 비용은 훨씬 낮아집니다.

앞서 언급했듯이 PyTorch는 이전 버전과의 호환성이 매우 뛰어난 프레임워크이므로 유지 관리 팀이 여러 버전을 유지할 필요가 없으며 모든 사람이 특정 문제에 집중할 수 있습니다. 필요에 따라 팀원의 효율성이 크게 향상됩니다.

위 내용은 PyTorch 추천 프레임워크로서 TorchRec의 모든 장점입니다. 우리를 매우 기쁘게 하는 것은 TorchRec 팀이 PyTorch 추천 프레임워크를 만드는 데 그치지 않는다는 것입니다. 그들은 기존 추천 모델 및 하드웨어의 특성을 관찰하고 프레임워크에 많은 새로운 기능을 추가하여 TorchRec에 기존 추천 프레임워크에 비해 확실한 성능 이점을 제공했습니다. 다음으로는 그 중 몇 가지를 골라 GPU 임베딩, TorchRec의 뛰어난 GPU 커널, 그리고 TorchRec이 네트워크 통신을 기반으로 수행할 수 있는 임베딩 분할을 소개하겠습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

​첫 번째는 GPU 임베딩입니다. 먼저 기존 추천 시스템 GPU 훈련 프로세스를 검토해 보겠습니다. GPU 작업자에 특정 모델을 배치하고 임베딩은 원격 PS에 저장됩니다. 각 반복 단계에서는 먼저 원격 PS에서 매개변수를 가져온 다음 GPU에서 모델의 정방향 및 역방향 계산을 수행하고 경사도를 PS로 다시 전송하고 PS의 매개변수를 업데이트합니다.

사진의 녹색 부분은 GPU에서 수행되는 작업이고, 빨간색 부분은 네트워크나 CPU에서 수행되는 작업입니다. GPU는 시스템에서 가장 비싼 부분임에도 불구하고 많은 작업이 GPU에 배치되지 않는 것을 볼 수 있습니다. ​

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

기존 프로세스에서는 GPU를 최대한 활용하지 않습니다. 동시에, 하드웨어 관점에서 볼 때 단일 GPU 카드의 메모리는 점점 더 커지고 있으며 일부 밀도가 높은 모델은 NVIDIA의 지속적인 최적화를 통해 NV 링크와 GPU 다이렉트 RDMA도 인터를 만들었습니다. - 카드 통신이 더욱 빨라졌습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

GPU 임베딩은 매우 간단한 솔루션입니다. 그는 임베딩을 직접 나누어 GPU에 배치합니다. 예를 들어 단일 시스템에 8개의 카드가 있는 경우 임베딩을 8개의 부분으로 직접 나누고 각 부분을 카드에 배치합니다. 카드. . GPU 활용 효율이 크게 향상되고, 훈련 속도도 질적으로 향상됩니다. GPU의 비디오 메모리 공간이 부족하다고 걱정되는 경우 TorchRec은 UVM도 지원합니다. UVM은 비디오 메모리에 대한 보충으로 호스트의 메모리 일부를 미리 나누어 내부에 배치할 수 있는 임베딩 크기를 늘릴 수 있습니다. 단일 기계.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

TorchRec은 GPU 임베딩 외에도 매우 뛰어난 GPU 커널을 구현합니다. 이러한 커널은 최신 하드웨어 기능과 CUDA 기능을 최대한 활용합니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

예를 들어 임베딩 조회 커널을 구현하려는 경우, 즉 대규모 임베딩의 ID에 해당하는 임베딩 벡터 묶음을 찾아야 하는 경우 일반적인 구현에서 각 GPU 스레드는 ID를 할당하고 각각 해당하는 임베딩을 찾도록 하세요. 이때 GPU의 맨 아래 레이어는 워프에 따라 스케줄링되며, 워프에 있는 32개의 스레드가 함께 비디오 메모리를 읽고 쓴다는 점을 고려해야 합니다. 이는 위의 과정에서 ID를 읽을 때 비디오 메모리에 계속 액세스하더라도 후속 복사본은 무작위 읽기 및 쓰기 상태가 된다는 것을 의미합니다. 하드웨어의 경우 임의 읽기 및 쓰기는 메모리 대역폭을 완전히 활용할 수 없으며 작동 효율성도 충분히 높지 않습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

TorchRec은 shuffle_sync와 같은 워프 프리미티브를 사용하여 각 스레드에서 ID를 읽은 후 워프의 모든 스레드에 ID를 브로드캐스팅하여 랩 내의 32개 스레드가 동시에 처리할 수 있도록 합니다. 동일한 임베딩으로 , 지속적인 메모리 읽기 및 쓰기가 수행될 수 있어 비디오 메모리의 대역폭 활용 효율성이 크게 향상되고 커널 속도가 여러 배 증가합니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

이 표는 임베딩 조회 성능 향상에 대한 공식 테스트입니다. 여기서 Fused EBC는 최적화된 커널입니다. 다양한 설정에서 TorchRec은 기본 PyTorch에 비해 성능이 수십 배 향상되었음을 알 수 있습니다. TorchRec을 기반으로 우리는 임베딩이 상대적으로 작을 때(128개 미만) 절반 이상의 스레드가 유휴 상태일 수 있으므로 워프의 스레드를 추가로 그룹화하여 동시에 여러 임베딩을 처리할 수 있음을 발견했습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

개선을 통해 Small Embedding Dim의 커널이 10%~30% 향상되었습니다. 이 최적화는 공식 저장소에도 통합되었습니다. TorchRec의 커널은 FBGEMM 라이브러리에 위치합니다. 관심 있는 친구들은 살펴볼 수 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

마지막으로 TorchRec의 Embedding 분할 메커니즘을 소개하겠습니다. 앞서 언급한 것처럼 GPU 임베딩은 임베딩을 나누어서 카드에 넣는 방식이므로 어떻게 분할할지 고민이 필요한 문제가 됩니다. 전통적으로 행별(Rowwise)과 열별(Columnwise)이라는 두 가지 나누기 아이디어가 있습니다. 행 방식은 20,000개의 특성이 있는 경우 0에서 10000까지의 숫자가 카드 1에 배치되고 10000에서 20000까지의 숫자가 카드 2에 배치된다는 의미입니다. 이런 식으로 학습할 때 ID가 카드 1에 해당하면 시작합니다. from 카드 1에서 가져오고, 카드 2에 해당하면 카드 2에서 가져옵니다. Rowwise의 문제점은 처음 10,000개 번호와 마지막 10,000개 번호의 트래픽 양 사이에 큰 차이가 있는지 여부를 알 수 없기 때문에 통신이 불균형하고 네트워크 하드웨어를 완전히 활용할 수 없다는 것입니다.

칼럼 방향은 삽입 길이의 관점에서 나누어집니다. 예를 들어 임베딩의 전체 길이는 128입니다. 처음 64차원과 마지막 64차원을 서로 다른 위치에 배치할 수 있습니다. 이렇게 하면 통신이 더욱 균형을 이루게 되지만 읽을 때는 모든 카드나 PS와 통신해야 합니다. .

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

분할 모드의 차이로 인해 선택이 절충됩니다. 기존 추천 프레임워크는 디자인에서 임베딩 분할 방법을 수정하는 반면, TorchRec은 행 단위, 열 단위, 심지어 테이블 단위, 데이터 병렬과 같은 여러 분할 방법을 지원하고 Planner, Estimator, PerfModel 및 기타 모듈과 같은 내부 기능을 자동으로 제공합니다. 대역폭, 비디오 메모리, 메모리, 모델 크기 및 사용 시나리오의 기타 매개변수를 기반으로 분할 방법을 계산합니다. 이런 식으로 우리의 실제 하드웨어 조건에 따라 임베딩을 가장 효율적으로 분할할 수 있으며, 하드웨어를 가장 효율적으로 활용할 수 있습니다. 이러한 함수의 대부분은 Python으로 구현됩니다. 이를 통해 우리 내부 환경에 맞게 맞춤화할 수 있고, 우리 내부 환경에 가장 적합한 추천 시스템을 쉽게 구축할 수 있습니다.

2. 수백억 개의 모델에 대한 실험 결과

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

DeepFM, DCN과 같은 표준 모델에 대해 TorchRec이 권장하는 프레임워크는 이전 벤치마크와 비교했을 때 놀라운 10~15배의 성능을 발휘합니다. 성능 개량. 이러한 성능 향상을 얻으면 TorchRec을 사업에 착수할 수 있다는 자신감을 갖게 됩니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

WeChat 읽기 미세 인쇄 모델의 경우 정렬 정확도를 기반으로 실제 데이터에서는 약 3배, 가짜 데이터에서는 약 10배 정도 성능이 향상되는 것을 확인했습니다. 여기서 차이점은 훈련을 위해 데이터를 읽는 것이 병목 현상이 발생했다는 것이며, 우리는 이와 관련하여 계속해서 최적화를 진행하고 있다는 것입니다.

03

원래 솔루션은 1000억개 이상의 모델에서는 단점이 있습니다

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

앞서 소개한 모델들은 기본적으로 모델들입니다 100억 이하. 즉, 단일 기계에 들어갈 수 있는 모델입니다. TorchRec을 더 큰 모델로 추진하는 동안 우리는 TorchRec의 기본 디자인에서 몇 가지 문제를 발견했습니다. 대형 모델의 경우 TorchRec의 순수 GPU 임베딩 솔루션에는 더 많은 카드가 필요합니다. 8개의 카드의 원래 학습 속도는 모든 데이터를 흡수할 수 있지만 임베딩을 배치하려면 16개의 카드를 사용해야 하므로 GPU 하드웨어를 개선하기가 어렵습니다. 활용 효율성이 다시 저하되었습니다.

그리고 대규모 모델 시나리오의 경우 알고리즘 팀에서는 일주일 동안 액세스하지 않은 ID를 삭제하는 등 임베딩을 위한 동적 추가 및 삭제 요구 사항을 제시하는 경우가 많습니다. TorchRec의 솔루션은 이러한 기능을 지원하지 않습니다. 또한 매우 큰 모델 비즈니스에는 일반적으로 많은 팀이 참여하므로 기본 프레임워크를 마이그레이션하는 데 큰 저항이 발생합니다. 우리에게 필요한 것은 점진적이고 점진적인 마이그레이션에 대한 지원이며 모든 사람이 당면한 작업을 중단하도록 할 수는 없습니다. 이는 비용이 너무 많이 들고 위험합니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

위의 요구 사항을 기반으로 매우 대규모 모델의 시나리오에 적응할 수 있도록 TorchRec을 수정하는 방법을 고려했습니다. 우리는 원격 CPU PS가 매우 성숙하고 임베딩의 동적 추가를 쉽게 지원할 수 있기 때문에 초대형 훈련에서는 여전히 원격 PS 연결을 지원해야 한다고 믿습니다. 동시에 팀 간 협력을 위해 PS를 사용하여 훈련과 추론을 분리하여 점진적인 마이그레이션을 달성할 수 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

그럼 다음 질문은 PS 소개 방법입니다. PS가 GPU 임베딩에 직접 연결된 경우 각 반복 단계는 여전히 원격 PS에 액세스해야 하므로 전체 네트워크 및 CPU 작업의 비율이 증가하고 GPU 사용률이 낮아집니다.

04

WeChat 팀의 동적 임베딩 문제를 해결하는 방법

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

이번에 우리는 단위 시간당 데이터의 새 ID가 실제로는 단지 전체 데이터 중 아주 작은 부분을 차지합니다. 작은 부분에 대해 HugeCTR도 논문에서 비슷한 결론을 언급했습니다. 즉, ID의 작은 부분만이 자주 액세스됩니다. 여기서 우리는 정상적으로 훈련을 위해 GPU 임베딩을 사용하고, 디스플레이 메모리가 가득 차면 일괄적으로 ID를 PS로 내보내는 것을 생각했습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

이 아이디어에 따르면 n개의 ID만 GPU 임베딩에 저장할 수 있고 ID의 총 개수는 N이거나 심지어 무한할 수도 있습니다. 전역 ID는 0, 1, 2, 3... 순으로 매핑될 수 있으며, 매핑 관계는 ID 변환이라는 구조에 저장되어 GPU 임베딩이 매핑 결과를 일반 훈련에 사용할 수 있도록 합니다. GPU 임베딩이 가득 차면, 즉 ID 변환기에 n 쌍의 매핑이 있으면 ID가 일괄적으로 PS로 제거됩니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

이 설계에서는 PS가 거의 개입할 수 없으며 퇴거할 때만 GPU 작업자와 PS 통신이 필요합니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

또한 이 설계에서는 PS를 KV로만 사용하면 되며 매개변수 업데이트를 지원할 필요가 없으므로 PS 팀이 허용합니다. 스토리지 관련 작업에 집중합니다. 모든 KV 스토리지를 구현하는 플러그인도 지원하며, 오픈소스 버전에는 Redis 플러그인이 내장되어 있어 Redis를 PS로도 사용할 수 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

다음은 동적 임베딩의 몇 가지 디자인 세부 사항입니다. 우리가 구현한 가장 단순하고 기본적인 ID 변환기는 실제로 PyTorch의 고성능 ska::plat_hash_map을 사용하여 해시 테이블을 사용합니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

ID Transformer는 프로세스 내 유일한 CPU 작업으로 상대적으로 높은 성능 요구 사항을 가질 수 있으므로 메모리 액세스 효율성을 더욱 향상시키기 위해 L1 캐시라인 단위에 저장되는 고성능 버전도 구현했습니다. .

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

또한 퇴거 방식을 위해 메모리 캐시 부담을 늘리지 않고 LRU와 LFU를 효율적으로 융합할 수 있기를 바랍니다. Redis의 LFU 솔루션에서 영감을 받아 확률적 알고리즘을 설계했습니다. ID 액세스 빈도의 인덱스만 저장됩니다. 예를 들어 32번 접속하면 5가 저장됩니다. 빈도 업데이트 시 해당 ID에 다시 접속하면 5자리 난수가 생성되는데, 5자리가 모두 0인 경우, 즉 1/32 확률의 이벤트가 발생한 경우 빈도 지수를 증가시킵니다. 6으로. 이러한 확률 알고리즘을 통해 LRU와 LFU의 주파수를 uint32에 넣어 메모리 액세스 압력을 높이지 않고 LRU와 LFU를 통합할 수 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

마지막으로 멀티카드 솔루션을 간략히 소개하겠습니다. 우리는 현재 모든 카드 데이터를 카드 1의 ID 변환기로 수집한 다음 이를 다시 방송합니다. 우리가 구현한 ID Transformer는 성능이 매우 뛰어나고 GPU 컴퓨팅 파이프라인과 결합할 수 있기 때문에 특정 성능 병목 현상이 발생하지 않습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

위는 동적 임베딩을 위한 몇 가지 디자인 아이디어입니다. 내부 조 단위 비즈니스 중 하나인 정렬 정확도의 경우 동적 임베딩 솔루션은 내부 원래 GPU Tensorflow 프레임워크에 비해 약 3배의 성능 향상을 제공합니다. TF 최적화 버전과 비교하면 여전히 50% 이상의 성능 이점이 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

마지막으로 모든 분들이 Torchrec을 사용해 보시길 권합니다. 수백억 개의 기업과 같이 상대적으로 소규모 기업의 경우 기본 TorchRec을 직접 사용하는 것이 좋습니다. 플러그 앤 플레이로 2차 개발이 필요하지 않으며 성능을 두 배로 높일 수 있습니다. 대규모 기업의 경우 TorchRec의 동적 임베딩을 통합해 보는 것이 좋습니다. 한편으로는 내부 PS에 연결하는 것이 편리하고, 다른 한편으로는 임베딩의 확장 및 점진적인 마이그레이션도 지원합니다. 동시에 특정 성능 향상을 얻을 수 있습니다.

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습

다음은 우리가 준비한 정밀 모델과 기존 응용 시나리오입니다. 관심 있는 친구들은 시험해 볼 수 있습니다.

위 내용은 PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습 PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육 실습 Apr 12, 2023 pm 12:13 PM

이번 글에서는 PyTorch를 기반으로 한 WeChat의 대규모 추천 시스템 교육을 소개하겠습니다. 다른 딥러닝 분야와 달리 추천 시스템은 여전히 ​​Tensorflow를 교육 프레임워크로 사용하는데, 이는 대다수 개발자로부터 비판을 받고 있습니다. 추천 교육을 위해 PyTorch를 활용하는 사례도 있지만 규모가 작고 실제 사업 검증이 없어 사업 얼리 어답터 홍보가 어렵다. 2022년 2월, PyTorch 팀은 공식 추천 라이브러리인 TorchRec을 출시했습니다. 우리 팀은 5월부터 내부 업무에서 TorchRec을 시도하기 시작했고 TorchRec 팀과 일련의 협력을 시작했습니다. 몇 달 간의 시험 기간 동안 우리는 TorchR이 다음과 같은 사실을 발견했습니다.

데이터 부족이 모델 학습에 미치는 영향 데이터 부족이 모델 학습에 미치는 영향 Oct 08, 2023 pm 06:17 PM

데이터 부족이 모델 학습에 미치는 영향에는 특정 코드 예제가 필요합니다. 기계 학습 및 인공 지능 분야에서 데이터는 모델 학습의 핵심 요소 중 하나입니다. 그러나 현실에서 우리가 자주 직면하는 문제는 데이터의 부족입니다. 데이터 희소성은 훈련 데이터의 양이 부족하거나 주석이 달린 데이터가 부족한 것을 의미합니다. 이 경우 모델 훈련에 일정한 영향을 미칩니다. 데이터 부족 문제는 주로 다음과 같은 측면에서 나타납니다. 과적합(Overfitting): 훈련 데이터의 양이 부족하면 모델이 과적합되기 쉽습니다. 과적합은 모델이 훈련 데이터에 과도하게 적응하는 것을 말합니다.

Python을 사용하여 이미지에 대한 모델을 학습하는 방법 Python을 사용하여 이미지에 대한 모델을 학습하는 방법 Aug 26, 2023 pm 10:42 PM

Python을 사용하여 이미지에 대한 모델을 훈련하는 방법 개요: 컴퓨터 비전 분야에서는 딥 러닝 모델을 사용하여 이미지를 분류하고 대상 감지 및 기타 작업을 수행하는 것이 일반적인 방법이 되었습니다. 널리 사용되는 프로그래밍 언어인 Python은 풍부한 라이브러리와 도구를 제공하므로 이미지에 대한 모델을 비교적 쉽게 훈련할 수 있습니다. 이 기사에서는 Python 및 관련 라이브러리를 사용하여 이미지에 대한 모델을 학습하는 방법을 소개하고 해당 코드 예제를 제공합니다. 환경 준비: 시작하기 전에 설치가 완료되었는지 확인해야 합니다.

딥러닝 모델의 훈련 시간 문제 딥러닝 모델의 훈련 시간 문제 Oct 09, 2023 pm 02:15 PM

딥러닝 모델의 훈련 시간 문제 소개: 딥러닝의 발전과 함께 딥러닝 모델은 다양한 분야에서 놀라운 성과를 거두었습니다. 그러나 딥러닝 모델의 훈련 시간은 일반적인 문제입니다. 대규모 데이터 세트와 복잡한 네트워크 구조의 경우 딥러닝 모델의 훈련 시간이 크게 늘어납니다. 이 기사에서는 딥 러닝 모델의 훈련 시간 문제에 대해 논의하고 구체적인 코드 예제를 제공합니다. 병렬 컴퓨팅으로 훈련 시간 단축 딥 러닝 모델의 훈련 과정에는 일반적으로 많은 양의 컴퓨팅 리소스와 시간이 필요합니다. 훈련 속도를 높이기 위해

데이터 증강 기술이 모델 훈련 효과를 어떻게 향상시키는가에 대한 문제 데이터 증강 기술이 모델 훈련 효과를 어떻게 향상시키는가에 대한 문제 Oct 10, 2023 pm 12:36 PM

데이터 증강 기술의 모델 훈련 효과를 향상하려면 구체적인 코드 예제가 필요합니다. 최근 몇 년 동안 딥 러닝은 컴퓨터 비전 및 자연어 처리와 같은 분야에서 큰 발전을 이루었습니다. 그러나 일부 시나리오에서는 작은 크기로 인해 데이터 세트, 모델의 일반화 능력과 정확도가 만족스러운 수준에 도달하기 어렵습니다. 이때, 데이터 강화 기술은 학습 데이터 세트를 확장하고 모델의 일반화 능력을 향상시켜 중요한 역할을 할 수 있습니다. 데이터 증대는 원본 데이터에 대해 일련의 변환 및 변환을 수행하는 것을 의미합니다.

[Python NLTK] 텍스트 분류, 텍스트 분류 문제를 쉽게 해결 [Python NLTK] 텍스트 분류, 텍스트 분류 문제를 쉽게 해결 Feb 25, 2024 am 10:16 AM

텍스트 분류는 텍스트를 미리 정의된 범주로 분류하는 것을 목표로 하는 자연어 처리(NLP) 작업 중 하나입니다. 텍스트 분류에는 이메일 필터링, 스팸 감지, 감정 분석, 질문 응답 시스템 등과 같은 많은 실용적인 응용 프로그램이 있습니다. pythonNLTK 라이브러리를 사용하여 텍스트 분류를 완료하는 작업은 다음 단계로 나눌 수 있습니다. 데이터 전처리: 먼저 구두점 제거, 소문자로 변환, 공백 제거 등을 포함하여 데이터를 전처리해야 합니다. 특징 추출: 다음으로 전처리된 텍스트에서 특징을 추출해야 합니다. 특징은 단어, 구 또는 문장일 수 있습니다. 모델 훈련: 그런 다음 추출된 특징을 사용하여 분류 모델을 훈련해야 합니다. 일반적으로 사용되는 분류 모델에는 Naive Bayes, Support Vector Machine 및 의사결정 트리가 포함됩니다. 평가: 최종

PHP 마이크로서비스에서 분산 알고리즘 및 모델 교육을 구현하는 방법 PHP 마이크로서비스에서 분산 알고리즘 및 모델 교육을 구현하는 방법 Sep 25, 2023 am 10:37 AM

PHP 마이크로서비스에서 분산 알고리즘 및 모델 교육을 구현하는 방법 소개: 클라우드 컴퓨팅 및 빅 데이터 기술의 급속한 발전으로 인해 데이터 처리 및 모델 교육에 대한 수요가 증가하고 있습니다. 분산 알고리즘과 모델 교육은 효율성, 속도, 확장성을 달성하는 데 핵심입니다. 이 문서에서는 PHP 마이크로서비스에서 분산 알고리즘 및 모델 교육을 구현하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 분산 알고리즘과 모델 학습이란 무엇입니까? 분산 알고리즘과 모델 학습은 여러 머신이나 서버 리소스를 사용하여 데이터 처리와 모델 학습을 동시에 수행하는 기술입니다.

공개된 Python 기반 기술: 모델 훈련 및 예측 구현 방법 공개된 Python 기반 기술: 모델 훈련 및 예측 구현 방법 Nov 08, 2023 pm 03:58 PM

Python의 기본 기술 공개: 모델 훈련 및 예측을 구현하는 방법, 구체적인 코드 예제가 필요합니다. 배우기 쉽고 사용하기 쉬운 프로그래밍 언어인 Python은 기계 학습 분야에서 널리 사용됩니다. Python은 Scikit-Learn, TensorFlow 등과 같은 수많은 오픈 소스 기계 학습 라이브러리 및 도구를 제공합니다. 이러한 오픈 소스 라이브러리의 사용과 캡슐화는 우리에게 많은 편의성을 제공하지만, 기계 학습의 기본 기술에 대한 깊은 이해를 갖고 싶다면 이러한 라이브러리와 도구를 사용하는 것만으로는 충분하지 않습니다. 이 기사에서는 심층적으로 다룰 것입니다.

See all articles