You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2016/03/29 06:41:20 UTC

svn commit: r1736944 - in /incubator/singa/site/trunk/content/markdown/docs/kr: architecture.md distributed-training.md frameworks.md overview.md programming-guide.md quick-start.md

Author: wangwei
Date: Tue Mar 29 04:41:19 2016
New Revision: 1736944

URL: http://svn.apache.org/viewvc?rev=1736944&view=rev
Log:
update korean docs

Modified:
    incubator/singa/site/trunk/content/markdown/docs/kr/architecture.md
    incubator/singa/site/trunk/content/markdown/docs/kr/distributed-training.md
    incubator/singa/site/trunk/content/markdown/docs/kr/frameworks.md
    incubator/singa/site/trunk/content/markdown/docs/kr/overview.md
    incubator/singa/site/trunk/content/markdown/docs/kr/programming-guide.md
    incubator/singa/site/trunk/content/markdown/docs/kr/quick-start.md

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/architecture.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/architecture.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/architecture.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/architecture.md Tue Mar 29 04:41:19 2016
@@ -7,42 +7,41 @@
 <img src = "../../images/logical.png" style="width:550px"/>
 <p> <strong> Fig.1 - 시스템 아키텍처 </strong> </p>
 
-SINGA는 다양한 분산 [트레이닝 프레임워크](frameworks.html) (동기 또는 비동기 트레이닝)을 지원하는 유연한 구조를 가지고 있습니다.
-Fig.1. 시스템의 구조를 보여줍니다.
-특징으로는 여러 server 그룹과 worker 그룹을 가지고있다.
+SINGA는 다양한 분산 [트레이닝 프레임워크](frameworks.html) (동기 혹은 비동기 트레이닝)을 지원하는 구조를 가지고 있습니다.
+특징으로는 여러 server그룹 과 worker그룹을 가지고 있습니다.
 
 * **Server 그룹**
 
-  Server 그룹은 모델 매개 변수의 복제본을 가지고 worker 그룹의 요청에 따라 매개 변수의 업데이트를 담당합니다. 인접한 server 그룹들은 매개 변수를 정기적으로 동기화합니다. 일반적으로 하나의 server 그룹은 여러 server로 구성된 각 server는 모델 매개 변수의 분할 된 부분을 담당합니다.
+    Server그룹은 모델 매개 변수의 복제를 가지고 worker그룹의 요청에 따라 매개 변수의 업데이트를 담당합니다. 인접된 server그룹들은 매개 변수를 정기적으로 동기화합니다. 일반적으로 하나의 server그룹은 여러 server로 구성되며, 각 server는 모델 매개 변수의 분할 된 부분을 담당합니다.
 
 * **Worker 그룹**
 
-  각 worker 그룹은 하나의 server 그룹과 통신합니다. 하나의 worker 그룹은 매개 변수의 기울기 계산을 담당합니다. 또한 분할 된 데이터의 일부에 대해 "완전한"모델 복제본을 트레이닝합니다. 모든 worker 그룹들은 해당 server 그룹들과 비동기 적으로 통신합니다. 그러나 같은 worker 그룹의 worker들은 동기화합니다.
+    각 worker그룹은 하나의 server그룹과 통신합니다. 하나의 worker그룹은 매개 변수의 구배계산을 담당합니다. 또한 분할 된 일부 데이터를 써서 "전체"모델의 레프리카를 트레이닝합니다. 모든 worker그룹들은 해당 server그룹들과 비동기 통신을 합니다. 그러나 같은 worker그룹의 worker들은 동기합니다.
 
 동일 그룹 내에서 worker들의 분산 트레이닝에는 많은 방법이 있습니다.
 
 * **모델 병렬화**
 
-  각 worker 그룹에 배정 된 모든 데이터에 대해 매개 변수의 부분 집합을 계산합니다.
+    각 worker그룹에 배정 된 모든 데이터에 대해 매개 변수의 부분 집합을 계산합니다.
 
 * **데이터 병렬화**
 
-  각 worker는 배분 된 데이터의 부분 집합에 대해 모든 매개 변수를 계산합니다.
+    각 worker는 배분 된 데이터의 부분 집합에 대해 모든 매개 변수를 계산합니다.
 
 * **하이브리드 병렬화**
 
-  위의 방법을 조합한 하이브리드 병렬화를 지원합니다.
+    위의 방법을 조합한 하이브리드 병렬화를 지원합니다.
 
 
 ## 임플리멘테이션
 
-SINGA에서 servers 와 workers는 다른 스레드에서 움직이는 실행 유닛입니다.
+SINGA에서 servers 와 workers는 다른 스레드에서 실행되는 유닛입니다.
 
-이들은 [messages](communication.html)를 이용하여 통신합니다.
-모든 프로세스는 메인 스레드인 stub을 실행하여 로컬 messages를 수집하고 그것을 대응하는 receiver에 전송합니다.
+이들은 [messages](communication.html)를 이용하여 통신을 합니다.
+모든 프로세스는 메인 스레드인 stub을 실행하여 로컬 messages를 수집하고 대응되는 receiver에 전송합니다.
 
-각 server 그룹과 worker 그룹은 "전체"모델 레프리카인 *ParamShard* 를 가집니다.
-만약 workers 와 servers 가 동일한 프로세스에서 실행된다면,
+각 server그룹과 worker그룹은 "전체"모델 레프리카인 *ParamShard* 를 가집니다.
+만약 workers 와 servers 가 동일한 프로세스에서 실행 된다면,
 그 *ParamShard* (파티션)은 메모리 공간을 공유하도록 설정됩니다.
 이 경우 다른 실행 유닛 사이를 오가는 messages는 통신 비용을 줄이기 위해 데이터의 포인터 만 포함합니다.
-프로세스 간 통신의 경우와는 달리 messsages는 파라미터 값을 포함합니다.
+프로세스 간 통신의 경우와는 달리 messages는 파라미터 값을 포함합니다.

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/distributed-training.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/distributed-training.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/distributed-training.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/distributed-training.md Tue Mar 29 04:41:19 2016
@@ -14,7 +14,7 @@ SINGA는 대규모 데ì�
 
 모델 트레이닝을 병렬화하기 위해 다양한 병렬방식 (데이터 병렬, 모델 병렬, 하이브리드 병렬 등)을 지원합니다.
 
-* 하이브리드 병렬화 (hybrid.html)
+* [하이브리드 병렬화](hybrid.html)
 
 현재 SINGA는 Mesos과 통합되어 있기 때문에 분산 트레이닝을 Mesos 프레임워크로 실행할 수 있습니다.
 Mesos 클러스터는 SINGA 컨테이너에서 설정할 수 있습니다.

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/frameworks.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/frameworks.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/frameworks.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/frameworks.md Tue Mar 29 04:41:19 2016
@@ -1,13 +1,13 @@
-# Distributed Training Framework
+# 분산 트레이닝
 
 ---
 
-## Cluster Topology Configuration
+## Cluster Topology 설정
 
-Here we describe how to configure SINGA's cluster topology to support
-different distributed training frameworks.
-The cluster topology is configured in the `cluster` field in `JobProto`.
-The `cluster` is of type `ClusterProto`:
+SINGA 에서 다양한 분산 트레이닝 프레임워크를 실행하는 방법을 설명합니다.
+
+cluster topology 는 `JobProto` 속의 `cluster` field 를 설정해줍니다.
+`cluster` 는 `ClusterProto` 타입 입니다. 예를 들어
 
     message ClusterProto {
       optional int32 nworker_groups = 1;
@@ -24,32 +24,28 @@ The `cluster` is of type `ClusterProto`:
     }
 
 
-The mostly used fields are as follows:
+자주 사용되는 field 는 다음과 같습니다:
+
+* `nworkers_per_group` and `nworkers_per_procs`:
+    decide the partitioning of worker side ParamShard.
+
+* `nservers_per_group` and `nservers_per_procs`:
+    decide the partitioning of server side ParamShard.
+
+* `server_worker_separate`:
+    separate servers and workers in different processes.
+
+## 다양한 트레이닝 프레임워크
 
-  * `nworkers_per_group` and `nworkers_per_procs`:
-  decide the partitioning of worker side ParamShard.
-  * `nservers_per_group` and `nservers_per_procs`:
-  decide the partitioning of server side ParamShard.
-  * `server_worker_separate`:
-  separate servers and workers in different processes.
-
-## Different Training Frameworks
-
-In SINGA, worker groups run asynchronously and
-workers within one group run synchronously.
-Users can leverage this general design to run
-both **synchronous** and **asynchronous** training frameworks.
-Here we illustrate how to configure
-popular distributed training frameworks in SINGA.
+SINGA 에서 worker groups 들은 비동기적으로, group 속에서 workers 들은 동기적으로 실행됩니다. 유저는 이 일반디저인을 이용해서 **synchronous** 와 **asynchronous** 트레이닝 프레임워크를 실행 할수 있습니다. 널리 알려진 분산 트레이닝을 어떻게 설정하고 실행하는지 설명하겠습니다.
 
 <img src="../../images/frameworks.png" style="width: 800px"/>
-<p><strong> Fig.1 - Training frameworks in SINGA</strong></p>
+<p><strong> Fig.1 - 다양한 트레이닝 프레임워크</strong></p>
 
 ###Sandblaster
 
-This is a **synchronous** framework used by Google Brain.
-Fig.2(a) shows the Sandblaster framework implemented in SINGA.
-Its configuration is as follows:
+Google Brain 에서 쓰이는 **synchronous** 프레임워크.
+Fig.2(a) 는 SINGA에서 Sandblaster 프레임워크를 실행하기 위한 cluster 의 설정 예입니다.
 
     cluster {
         nworker_groups: 1
@@ -59,16 +55,14 @@ Its configuration is as follows:
         server_worker_separate: true
     }
 
-A single server group is launched to handle all requests from workers.
-A worker computes on its partition of the model,
-and only communicates with servers handling related parameters.
+각 server group 는 모든 workers 의 requests 를 처리합니다.
+각 worker 는 뉴럴네트 모델의 한 부분을 담당하여 계산을 하고, 모든 servers 와 통신을 하여 관련 parameters 값을 얻습니다.
 
 
 ###AllReduce
 
-This is a **synchronous** framework used by Baidu's DeepImage.
-Fig.2(b) shows the AllReduce framework implemented in SINGA.
-Its configuration is as follows:
+Baidu's DeepImage 에서 쓰이는 **synchronous** 프레임워크.
+Fig.2(b) 는 SINGA에서 AllReduce 프레임워크를 실행하기 위한 cluster 의 설정 예입니다.
 
     cluster {
         nworker_groups: 1
@@ -78,15 +72,12 @@ Its configuration is as follows:
         server_worker_separate: false
     }
 
-We bind each worker with a server on the same node, so that each
-node is responsible for maintaining a partition of parameters and
-collecting updates from all other nodes.
+각 node 에서 1 worker 와 1 server 를 실행하여, 각 node 가 parameters 의 한 부분을 담당하고 계산을 하도록 설정합니다. 다른 nodes 와 업데이트 된 정보를 교환합니다.
 
 ###Downpour
 
-This is a **asynchronous** framework used by Google Brain.
-Fig.2(c) shows the Downpour framework implemented in SINGA.
-Its configuration is as follows:
+Google Brain 에서 쓰이는 **asynchronous** 프레임워크.
+Fig.2(c) 는 SINGA에서 Downpour 프레임워크를 실행하기 위한 cluster 의 설정 예입니다.
 
     cluster {
         nworker_groups: 2
@@ -96,16 +87,12 @@ Its configuration is as follows:
         server_worker_separate: true
     }
 
-Similar to the synchronous Sandblaster, all workers send
-requests to a global server group. We divide workers into several
-worker groups, each running independently and working on parameters
-from the last *update* response.
+synchronous Sandblaster 와 비슷하게, 모든 workers 는 1 server group 에 requests 를 보냅니다. 여기서는 workers 들을 여러 worker groups 으로 나누어서, 각 worker 가 *update* reply 에서 받은 최신 parameters 를 써서 계산 하도록 설정하였습니다.
 
 ###Distributed Hogwild
 
-This is a **asynchronous** framework used by Caffe.
-Fig.2(d) shows the Distributed Hogwild framework implemented in SINGA.
-Its configuration is as follows:
+Caffe 에서 쓰이는 **asynchronous** 프레임워크.
+Fig.2(d) 는 SINGA에서 Hogwild 프레임워크를 실행하기 위한 cluster 의 설정 예입니다.
 
     cluster {
         nworker_groups: 3
@@ -115,8 +102,5 @@ Its configuration is as follows:
         server_worker_separate: false
     }
 
-Each node contains a complete server group and a complete worker group.
-Parameter updates are done locally, so that communication cost
-during each training step is minimized.
-However, the server group must periodically synchronize with
-neighboring groups to improve the training convergence.
+각 node 는 1 server group 와 1 worker group 를 실행합니다.
+Parameter updates 를 node 에서 각각 실행시킴으로써 통신코스트와 트레이닝 스텝을 최소화 합니다. 그러나 server groups 들은 정기적으로 네이버링 groups 들과 동기 시켜야 됩니다.

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/overview.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/overview.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/overview.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/overview.md Tue Mar 29 04:41:19 2016
@@ -24,8 +24,11 @@ SINGA는 대규모 데ì�
 
 확장성은 분산 딥러닝에서 중요한 연구 과제입니다.
 SINGA는 다양한 트레이닝 프레임워크의 확장성을 유지할 수 있도록 설계되어 있습니다.
+
 * Synchronous (동기) : 트레이닝의 1단계에서 얻을 수있는 효과를 높입니다.
+
 * Asynchronous (비동기) : 트레이닝의 수렴 속도를 향상시킵니다.
+
 * Hybrid (하이브리드) : 코스트 및 리소스 (클러스터 크기 등)에 맞는 효과와 수렴 속도의 균형을 잡고 확장성을 향상시킵니다.
 
 SINGA는 딥러닝 모델의 네트워크 "레이어" 개념에 따라 직관적으로 프로그래밍을 할 수 있도록 디자인되어 있습니다. 다양한 모델을 쉽게 구축하고 트레이닝 할 수 있습니다.
@@ -33,16 +36,16 @@ SINGA는 딥러닝 모ë�
 ## 시스템 개요
 
 <img src = "../../images/sgd.png" align="center" width="400px"/>
-<span> <strong> Figure 1 - SGD Flow </strong> </span>
+<span><strong> Figure 1 - SGD Flow </strong></span>
 
-"딥러닝 모델을 학습한다"는 것은 특정 작업(분류, 예측 등)을 달성하기 위하여 사용되는 특징량(feature)을 생성하는 변환 함수의 최적 파라미터를 찾는 것입니다.
+"딥러닝 모델을 학습한다"는 것은 특정 작업(분류, 예측 등)을 달성하기 위하여 사용되는 특징량(feature)을 생성하는 변환 함수의 최적 파라미터를 찾는다는 것입니다.
 그 변수의 좋고 나쁨은, Cross-Entropy Loss (https://en.wikipedia.org/wiki/Cross_entropy) 등의 loss function (손실 함수)으로 확인합니다. 이 함수는 일반적으로 비선형 또는 비 볼록 함수이므로 閉解을 찾기가 힘듭니다.
 
 그래서 Stochastic Gradient Descent (확률적구배강하법)을 이용합니다.
-Figure 1과 같이 무작위로 초기화 된 파라미터 값을 손실 함수가 작아 지도록 반복 업데이트하고 있습니다.
+Figure 1과 같이 랜덤으로 초기화 된 파라미터 값을, 손실 함수가 작아 지도록 반복 업데이트하고 있습니다.
 
 <img src = "../../images/overview.png" align="center" width="400px"/>
-<span> <strong> Figure 2 - SINGA 개요 </strong> </span>
+<span> <strong> Figure 2 - SINGA Overview </strong> </span>
 
 트레이닝에 필요한 워크로드는 workers 와 servers 에 분산됩니다.
 Figure 2와 같이 루프(iteration)마다 workers 는 *TrainOneBatch* 함수를 불러서 파라미터 구배를 계산합니다.

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/programming-guide.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/programming-guide.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/programming-guide.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/programming-guide.md Tue Mar 29 04:41:19 2016
@@ -9,31 +9,23 @@ Figure 1에 그려진 다
   * [Updater](updater.html) : server에서 매개 변수를 업데이트하는 방법을 기술합니다.
   * [Cluster Topology](distributed-training.html) : workers와 servers 분산 토폴로지를 기술합니다.
 
-The *Basic user guide* section describes how to submit a training job using
-built-in components; while the *Advanced user guide* section presents details
-on writing user's own main function to register components implemented by
-themselves. In addition, the training data must be prepared, which has the same
-[process](data.html) for both advanced users and basic users.
+*Basic 유저 가이드* 에서 built-in components 를 써서 트레이닝을 시작하는 방법을 설명합니다. *Advanced 유저 가이드* 에서는 유저가 임플리멘트한 모델, 함수, 알고리듬을 써서 트레이닝을 시작하는 방법을 설병합니다. 트레이닝 데이타는 [process](data.html) 를 참고로 준비를 해주세요.
 
 <img src="../../images/overview.png" align="center" width="400px"/>
-<span><strong>Figure 1 - SINGA 개요 </strong></span>
+<span><strong>Figure 1 - SINGA Overview </strong></span>
 
 
 
 ## Basic 유저 가이드
 
-Users can use the default main function provided SINGA to submit the training
-job. For this case, a job configuration file written as a google protocol
-buffer message for the [JobProto](../api/classsinga_1_1JobProto.html) must be provided in the command line,
+SINGA 에서 준비된 main 함수를 써서 쉽게 트레이닝을 시작할수 있습니다.
+이 경우 [JobProto](../api/classsinga_1_1JobProto.html) 를 위하여 google protocol buffer message 로 씌여진 job configuration 파일을 준비합니다. 그리고 아래의 커맨드라인을 실행합니다.
 
     ./bin/singa-run.sh -conf <path to job conf> [-resume]
 
-`-resume` is for continuing the training from last
-[checkpoint](checkpoint.html).
-The [MLP](mlp.html) and [CNN](cnn.html)
-examples use built-in components. Please read the corresponding pages for their
-job configuration files. The subsequent pages will illustrate the details on
-each component of the configuration.
+`-resume` 는 트레이닝을 저번 [checkpoint](checkpoint.html) 부터 다시 계속할때 쓰는 인수 입니다.
+[MLP](mlp.html) 와 [CNN](cnn.html) 샘플들은 built-in 컴포넌트를 쓰고 있습니다.
+Please read the corresponding pages for their job configuration files. The subsequent pages will illustrate the details on each component of the configuration.
 
 ## Advanced 유저 가이드
 
@@ -42,11 +34,11 @@ If a user's model contains some user-def
 register these components. It is similar to Hadoop's main function. Generally,
 the main function should
 
-  * initialize SINGA, e.g., setup logging.
+* SINGA 초기화, e.g., setup logging.
 
-  * register user-defined components.
+* 유저 컴포넌트의 등록
 
-  * create and pass the job configuration to SINGA driver  
+* job configuration 을 작성하고 SINGA driver 에서 설정
 
 main 함수의 샘플입니다.
 
@@ -71,13 +63,9 @@ main 함수의 샘플ìž
       return 0;
     }
 
-The Driver class' `Init` method will load a job configuration file provided by
-users as a command line argument (`-conf <job conf>`). It contains at least the
-cluster topology and returns the `jobConf` for users to update or fill in
-configurations of neural net, updater, etc. If users define subclasses of
-Layer, Updater, Worker and Param, they should register them through the driver.
-Finally, the job configuration is submitted to the driver which starts the
-training.
+Driver class' `Init` method 는 커맨드라인 인수 `-conf <job conf>` 에서 주어진 job configuration 파일을 읽습니다. 그 파일에는 cluster topology 정보가 기술 되어있고, 유저가 neural net, updater 등을 업데이트 혹은 설정 하기위한 `jobConf`를 리턴합니다.
+유저가 Layer, Updater, Worker, Param 등의 subclass를 정의하면, driver 에 등록을 해야합니다.
+트레이닝을 시작하기 위하여 job configuration 즉 `jobConf`를 driver.Train 에 넘겨줍니다.
 
 We will provide helper functions to make the configuration easier in the
 future, like [keras](https://github.com/fchollet/keras).
@@ -89,5 +77,4 @@ path of the *mysinga* and base job confi
 
     ./bin/singa-run.sh -conf <path to job conf> -exec <path to mysinga> [other arguments]
 
-The [RNN application](rnn.html) provides a full example of
-implementing the main function for training a specific RNN model.
+[RNN application](rnn.html) 에서 RNN 모델의 트레이닝을 위한 함수의 프로그램 예를 설명합니다.

Modified: incubator/singa/site/trunk/content/markdown/docs/kr/quick-start.md
URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/content/markdown/docs/kr/quick-start.md?rev=1736944&r1=1736943&r2=1736944&view=diff
==============================================================================
--- incubator/singa/site/trunk/content/markdown/docs/kr/quick-start.md (original)
+++ incubator/singa/site/trunk/content/markdown/docs/kr/quick-start.md Tue Mar 29 04:41:19 2016
@@ -115,7 +115,7 @@ Cluster Topology의 기본ê°�
 
 스크립트 실행 :
 
-    ./bin/singa-run.sh -conf examples/cifar10/job.conf
+    ./bin/singa-run.sh -conf examples/cifar10/job.conf
 
 #### 동기화 병렬 트레이닝
 
@@ -165,7 +165,7 @@ e.g.,
 
 스크립트의 실행은 "Single 노드 트레이닝"과 동일합니다.
 
-    ./bin/singa-run.sh -conf examples/cifar10/job.conf
+    ./bin/singa-run.sh -conf examples/cifar10/job.conf
 
 ## Mesos에서 실행