华为云用户手册
-
发布数据 空间成员登录TICS控制台。进入TICS控制台后,单击页面左侧“计算节点管理”,进入“计算节点管理”页面。 在“计算节点管理”页,查找需要发布数据的计算节点名称,单击“计算节点名称”进入计算节点详情页。 图1 选择计算节点 在“计算节点详情”页,单击“前往计算节点”,在登录页输入部署计算节点时设置的“登录用户名”和“密码”。 图2 前往计算节点 登录成功后,进入到计算节点界面,选择左侧导航栏中“连接器管理”,单击“创建”,在弹出的界面配置创建连接器的参数,配置完成后单击“确定”。 测试功能为数据源连通性及密码正确性的检查测试。 图3 创建连接器(以RDS服务为例) 表1 参数说明 参数名 描述 连接器类型 “连接器类型”选择Hive连接时,需要选择Hive版本,当前仅支持 MRS 2.x和MRS3.x版本,选择的MRS集群需与当前计算节点部署CCE或IEF(非云上IEF节点不支持接入Hive)在同一VPC。“用户名”为MRS集群中拥有Hive权限的集群用户,“用户认证凭据”需要上传对应用户的认证凭据,请在 MapReduce服务 的下载用户认证文件中获取。 “连接器类型”选择RDS服务时,所选择的RDS服务实例需与计算节点在同一VPC下,且端口开放。填写的用户名,需具有数据库的读写权限(参考修改权限)。“密码”为该用户登录RDS实例的密码。 “连接器类型”选择MySql时,需保证计算节点与数据库所在虚机的连通性,“驱动文件”需与目标MySQL数据库版本一致。驱动类名com.mysql.cj.jdbc.Driver,仅支持mysql-connector-java-5.x以后的版本,驱动文件请在Mysql驱动下载地址中获取。 “连接器类型” 选择DWS连接时,填写的用户名,需具有数据库的读写权限(参考权限管理)。“密码”为该用户登录DWS实例的密码。 “连接器类型” 选择ORACLE连接时,需保证计算节点与数据库的连通性,当前仅支持ORACLE 12c和19c版本。驱动文件需与目标ORACLE数据库版本一致,请在ORACLE驱动下载地址中获取。 “连接器类型” 选择API连接时,需保证计算节点与api接口的连通性,当前仅支持基础认证方式。 连接器名称 根据实际情况设置即可。 数据库版本 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置即可。 数据库名称 “连接器类型”选择ORACLE时,呈现此参数。根据实际情况设置即可。 数据库服务器 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 端口 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 实例名称 “连接器类型”选择RDS或DWS服务时,呈现此参数。下拉选择实例即可。 数据库 “连接器类型”选择DWS服务时,呈现此参数。可手动输入DWS服务里面购买的数据库名称。 用户名 用户根据实际情况设置。 密码 用户根据实际情况设置。 驱动类名 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置,注意驱动类名com.mysql.cj.jdbc.Driver仅支持mysql-connector-java-5.x以后的版本。 JDBC URL “连接器类型”选择MySql时,呈现此参数。JDBC访问端口。取值样例:198.0.0.1:3306。 驱动文件 “连接器类型”选择MySql和ORACLE时,呈现此参数。JDBC驱动。 其他属性 “连接器类型”选择MySql时,呈现此参数。用户根据实际情况设置任务所需的Key和Value。 选择界面左侧“数据管理”,单击“创建”,在弹出的界面配置创建数据的参数,配置完成后单击“确定”。 配置数据参数时,若“连接器”为Hive、MySQL、RDS、DWS、ORACLE类型时,可对字段信息进行隐私策略的配置: 字段类别: 唯一标识:指用于标识某个事物实体身份的字段。例如身份证、工号、公司代码等。勾选后,会通过一定的语法限制和运行期校验,保护数据集内的id总集,确保无法被恶意逆推。 敏感:指会参与统计、计算的敏感数据。例如薪水、纳税、用电量。勾选后,其他参与方只能使用敏感数据进行不可逆推的四则运算、聚合计算(sum/avg/variance)、条件过滤(where)。TICS会保护唯一标识和敏感数据不被成对地明文泄露,同时会对敏感数据的求和计算添加差分噪声,以保护敏感数据不被泄露。 非敏感:指不参与数值分析,也和唯一身份无关的数据。例如等级、公司类型。 脱敏:勾选后,会对数据进行脱敏。 在“数据管理”页签找到待发布的数据名称,单击“发布”,数据就会被同步到作业管理的数据集中。 编辑完成后,需再次发布,变更才会生效。
-
下载计算节点配置信息 下载计算节点配置相关的信息,下载的信息可在部署计算节点的时候导入。“计算节点配置”代表“部署计算节点”属于哪个空间,用户输入的数据就会在哪个空间中参与计算。 配置信息包含证书,用于计算节点之间通信双向认证。证书保证了空间下的用户,部署的计算节点能够数据交互,参与计算。同时,也隔离了不同空间之间的数据访问。 合作方登录TICS控制台。进入TICS控制台后,单击页面左侧“通知管理”,进入通知管理页面。 浏览通知信息,单击“下载计算节点配置”,得到agentConfig.zip文件,解压到本地。 图1 下载计算节点配置
-
使用TICS的用户角色 根据人员的职能进行划分,使用TICS的用户主要可以分为以下两类。 组织方 面向熟悉业务并具有管理、决策、审核权限的管理人员。组织方具有TICS的所有权限,包括创建空间、邀请空间成员、删除空间等权限。例如,在创建空间模块中,组织方可以对合作方人员发布的数据进行审核,把好质量关。 合作方 合作方使用数据源计算节点模块实现自主可控的数据源注册、隐私策略(脱敏、加密、水印)的设定、元数据的发布等,为数据源计算节点提供全生命周期的可靠性监控、运维管理。
-
准备本地横向联邦数据资源 上传数据集文件(作业参与方) 上传数据集文件到计算节点挂载路径下,供计算节点执行的脚本读取。如果是主机挂载,上传到宿主机的挂载路径下。如果是OBS挂载,使用华为云提供的 对象存储服务 ,上传到当前计算节点使用的对象桶中。 图5 对象桶名称 此处以主机挂载为例: 创建一个主机挂载的计算节点Agent1,挂载路径为/tmp/tics1/。 使用文件上传工具上传包含数据集iris1.csv的dataset文件夹到宿主机/tmp/tics1/目录下。 iris1.csv内容如下: sepal_length,sepal_width,petal_length,petal_width,class 5.1,3.5,1.4,0.3,Iris-setosa 5.7,3.8,1.7,0.3,Iris-setosa 5.1,3.8,1.5,0.3,Iris-setosa 5.4,3.4,1.7,0.2,Iris-setosa 5.1,3.7,1.5,0.4,Iris-setosa 4.6,3.6,1,0.2,Iris-setosa 5.1,3.3,1.7,0.5,Iris-setosa 4.8,3.4,1.9,0.2,Iris-setosa 5,3,1.6,0.2,Iris-setosa 5,3.4,1.6,0.4,Iris-setosa 5.2,3.5,1.5,0.2,Iris-setosa 5.2,3.4,1.4,0.2,Iris-setosa 4.7,3.2,1.6,0.2,Iris-setosa 4.8,3.1,1.6,0.2,Iris-setosa 5.4,3.4,1.5,0.4,Iris-setosa 5.2,4.1,1.5,0.1,Iris-setosa 5.5,4.2,1.4,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 5,3.2,1.2,0.2,Iris-setosa 5.5,3.5,1.3,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 4.4,3,1.3,0.2,Iris-setosa 5.1,3.4,1.5,0.2,Iris-setosa 5,3.5,1.3,0.3,Iris-setosa 4.5,2.3,1.3,0.3,Iris-setosa 4.4,3.2,1.3,0.2,Iris-setosa 5,3.5,1.6,0.6,Iris-setosa 5.1,3.8,1.9,0.4,Iris-setosa 4.8,3,1.4,0.3,Iris-setosa 5.1,3.8,1.6,0.2,Iris-setosa 4.6,3.2,1.4,0.2,Iris-setosa 5.3,3.7,1.5,0.2,Iris-setosa 5,3.3,1.4,0.2,Iris-setosa 6.8,2.8,4.8,1.4,Iris-versicolor 6.7,3,5,1.7,Iris-versicolor 6,2.9,4.5,1.5,Iris-versicolor 5.7,2.6,3.5,1,Iris-versicolor 5.5,2.4,3.8,1.1,Iris-versicolor 5.5,2.4,3.7,1,Iris-versicolor 5.8,2.7,3.9,1.2,Iris-versicolor 6,2.7,5.1,1.6,Iris-versicolor 5.4,3,4.5,1.5,Iris-versicolor 6,3.4,4.5,1.6,Iris-versicolor 6.7,3.1,4.7,1.5,Iris-versicolor 6.3,2.3,4.4,1.3,Iris-versicolor 5.6,3,4.1,1.3,Iris-versicolor 5.5,2.5,4,1.3,Iris-versicolor 5.5,2.6,4.4,1.2,Iris-versicolor 6.1,3,4.6,1.4,Iris-versicolor 5.8,2.6,4,1.2,Iris-versicolor 5,2.3,3.3,1,Iris-versicolor 5.6,2.7,4.2,1.3,Iris-versicolor 5.7,3,4.2,1.2,Iris-versicolor 5.7,2.9,4.2,1.3,Iris-versicolor 6.2,2.9,4.3,1.3,Iris-versicolor 5.1,2.5,3,1.1,Iris-versicolor 5.7,2.8,4.1,1.3,Iris-versicolor 6.3,3.3,6,2.5,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 7.1,3,5.9,2.1,Iris-virginica 6.3,2.9,5.6,1.8,Iris-virginica 6.5,3,5.8,2.2,Iris-virginica 7.6,3,6.6,2.1,Iris-virginica 4.9,2.5,4.5,1.7,Iris-virginica 7.3,2.9,6.3,1.8,Iris-virginica 6.7,2.5,5.8,1.8,Iris-virginica 7.2,3.6,6.1,2.5,Iris-virginica 6.5,3.2,5.1,2,Iris-virginica 6.4,2.7,5.3,1.9,Iris-virginica 6.8,3,5.5,2.1,Iris-virginica 5.7,2.5,5,2,Iris-virginica 5.8,2.8,5.1,2.4,Iris-virginica 6.4,3.2,5.3,2.3,Iris-virginica 6.5,3,5.5,1.8,Iris-virginica 7.7,3.8,6.7,2.2,Iris-virginica 7.7,2.6,6.9,2.3,Iris-virginica 6,2.2,5,1.5,Iris-virginica 6.9,3.2,5.7,2.3,Iris-virginica 5.6,2.8,4.9,2,Iris-virginica 7.7,2.8,6.7,2,Iris-virginica 6.3,2.7,4.9,1.8,Iris-virginica 6.7,3.3,5.7,2.1,Iris-virginica 7.2,3.2,6,1.8,Iris-virginica 为了使容器内的计算节点程序有权限能够读取到文件,使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组为1000:1000。 在第二台主机上创建计算节点Agent2,挂载路径为/tmp/tics2/。上传包含数据集iris2.csv的dataset文件夹到宿主机目录下,修改属主。 iris2.csv的内容如下: sepal_length,sepal_width,petal_length,petal_width,class 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5,3.6,1.4,0.2,Iris-setosa 5.4,3.9,1.7,0.4,Iris-setosa 4.6,3.4,1.4,0.3,Iris-setosa 5,3.4,1.5,0.2,Iris-setosa 4.4,2.9,1.4,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 5.4,3.7,1.5,0.2,Iris-setosa 4.8,3.4,1.6,0.2,Iris-setosa 4.8,3,1.4,0.1,Iris-setosa 4.3,3,1.1,0.1,Iris-setosa 5.8,4,1.2,0.2,Iris-setosa 5.7,4.4,1.5,0.4,Iris-setosa 5.4,3.9,1.3,0.4,Iris-setosa 7,3.2,4.7,1.4,Iris-versicolor 6.4,3.2,4.5,1.5,Iris-versicolor 6.9,3.1,4.9,1.5,Iris-versicolor 5.5,2.3,4,1.3,Iris-versicolor 6.5,2.8,4.6,1.5,Iris-versicolor 5.7,2.8,4.5,1.3,Iris-versicolor 6.3,3.3,4.7,1.6,Iris-versicolor 4.9,2.4,3.3,1,Iris-versicolor 6.6,2.9,4.6,1.3,Iris-versicolor 5.2,2.7,3.9,1.4,Iris-versicolor 5,2,3.5,1,Iris-versicolor 5.9,3,4.2,1.5,Iris-versicolor 6,2.2,4,1,Iris-versicolor 6.1,2.9,4.7,1.4,Iris-versicolor 5.6,2.9,3.6,1.3,Iris-versicolor 6.7,3.1,4.4,1.4,Iris-versicolor 5.6,3,4.5,1.5,Iris-versicolor 5.8,2.7,4.1,1,Iris-versicolor 6.2,2.2,4.5,1.5,Iris-versicolor 5.6,2.5,3.9,1.1,Iris-versicolor 5.9,3.2,4.8,1.8,Iris-versicolor 6.1,2.8,4,1.3,Iris-versicolor 6.3,2.5,4.9,1.5,Iris-versicolor 6.1,2.8,4.7,1.2,Iris-versicolor 6.4,2.9,4.3,1.3,Iris-versicolor 6.6,3,4.4,1.4,Iris-versicolor 6.8,2.8,4.8,1.4,Iris-versicolor 6.2,2.8,4.8,1.8,Iris-virginica 6.1,3,4.9,1.8,Iris-virginica 6.4,2.8,5.6,2.1,Iris-virginica 7.2,3,5.8,1.6,Iris-virginica 7.4,2.8,6.1,1.9,Iris-virginica 7.9,3.8,6.4,2,Iris-virginica 6.4,2.8,5.6,2.2,Iris-virginica 6.3,2.8,5.1,1.5,Iris-virginica 6.1,2.6,5.6,1.4,Iris-virginica 7.7,3,6.1,2.3,Iris-virginica 6.3,3.4,5.6,2.4,Iris-virginica 6.4,3.1,5.5,1.8,Iris-virginica 6,3,4.8,1.8,Iris-virginica 6.9,3.1,5.4,2.1,Iris-virginica 6.7,3.1,5.6,2.4,Iris-virginica 6.9,3.1,5.1,2.3,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 6.8,3.2,5.9,2.3,Iris-virginica 6.7,3.3,5.7,2.5,Iris-virginica 6.7,3,5.2,2.3,Iris-virginica 6.3,2.5,5,1.9,Iris-virginica 6.5,3,5.2,2,Iris-virginica 6.2,3.4,5.4,2.3,Iris-virginica 5.9,3,5.1,1.8,Iris-virginica 准备模型文件/初始权重(作业发起方) 作业发起方需要提供模型、初始权重(非必须),上传到Agent1的挂载目录下并使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组。 使用python代码创建模型文件,保存为二进制文件model.h5,以鸢尾花为例,生成如下的模型: import tensorflow as tf import keras model = keras.Sequential([ keras.layers.Dense(4, activation=tf.nn.relu, input_shape=(4,)), keras.layers.Dense(6, activation=tf.nn.relu), keras.layers.Dense(3, activation='softmax') ]) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.save("d:/model.h5") 初始权重的格式是浮点数的数组,与模型对应。使用联邦学习训练出来的结果result_1可以作为初始权重,样例如下: -0.23300957679748535,0.7804553508758545,0.0064492723904550076,0.5866460800170898,0.676144003868103,-0.7883696556091309,0.5472091436386108,-0.20961782336235046,0.58524489402771,-0.5079598426818848,-0.47474920749664307,-0.3519996106624603,-0.10822880268096924,-0.5457949042320251,-0.28117161989212036,-0.7369481325149536,-0.04728877171874046,0.003856887575238943,0.051739662885665894,0.033792052417993546,-0.31878742575645447,0.7511205673217773,0.3158722519874573,-0.7290999293327332,0.7187696695327759,0.09846954792737961,-0.06735057383775711,0.7165604829788208,-0.730293869972229,0.4473201036453247,-0.27151209115982056,-0.6971480846405029,0.7360773086547852,0.819558322429657,0.4984433054924011,0.05300116539001465,-0.6597640514373779,0.7849202156066895,0.6896201372146606,0.11731931567192078,-0.5380218029022217,0.18895208835601807,-0.18693888187408447,0.357051283121109,0.05440644919872284,0.042556408792734146,-0.04341210797429085,0.0,-0.04367709159851074,-0.031455427408218384,0.24731603264808655,-0.062861368060112,-0.4265706539154053,0.32981523871421814,-0.021271884441375732,0.15228557586669922,0.1818728893995285,0.4162319302558899,-0.22432318329811096,0.7156463861465454,-0.13709741830825806,0.7237883806228638,-0.5489991903305054,0.47034209966659546,-0.04692812263965607,0.7690137028694153,0.40263476967811584,-0.4405142068862915,0.016018997877836227,-0.04845477640628815,0.037553105503320694 编写训练脚本(作业发起方) 作业发起方还需要编写联邦学习训练脚本,其中需要用户自行实现读取数据、训练模型、评估模型、获取评估指标的逻辑。计算节点会将数据集配置文件中的path属性作为参数传递给训练脚本。 JobParam属性如下: class JobParam: """训练脚本参数 """ # 作业id job_id = '' # 当前轮数 round = 0 # 迭代次数 epoch = 0 # 模型文件路径 model_file = '' # 数据集路径 dataset_path = '' # 是否仅做评估 eval_only = False # 权重文件 weights_file = '' # 输出路径 output = '' # 其他参数json字符串 param = '' 鸢尾花的训练脚本iris_train.py样例如下: # -*- coding: utf-8 -*- import getopt import sys from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelBinarizer import keras import pandas as pd import horizontal.horizontallearning as hl def train(): # 解析命令行输入 jobParam = JobParam() jobParam.parse_from_command_line() job_type = 'evaluation' if jobParam.eval_only else 'training' print(f"Starting round {jobParam.round} {job_type}") # 加载模型,设置初始权重参数 model = keras.models.load_model(jobParam.model_file) hl.set_model_weights(model, jobParam.weights_file) # 加载数据、训练、评估 -- 用户自己实现 print(f"Load data {jobParam.dataset_path}") train_x, test_x, train_y, test_y, class_dict = load_data(jobParam.dataset_path) if not jobParam.eval_only: b_size = 1 model.fit(train_x, train_y, batch_size=b_size, epochs=jobParam.epoch, shuffle=True, verbose=1) print(f"Training job [{jobParam.job_id}] finished") eval = model.evaluate(test_x, test_y, verbose=0) print("Evaluation on test data: loss = %0.6f accuracy = %0.2f%% \n" % (eval[0], eval[1] * 100)) # 结果以json格式保存 -- 用户读取评估指标 result = {} result['loss'] = eval[0] result['accuracy'] = eval[1] # 生成结果文件 hl.save_train_result(jobParam, model, result) # 读取CSV数据集,并拆分为训练集和测试集 # 该函数的传入参数为CSV_FILE_PATH: csv文件路径 def load_data(CSV_FILE_PATH): IRIS = pd.read_csv(CSV_FILE_PATH) target_var = 'class' # 目标变量 # 数据集的特征 features = list(IRIS.columns) features.remove(target_var) # 目标变量的类别 Class = IRIS[target_var].unique() # 目标变量的类别字典 Class_dict = dict(zip(Class, range(len(Class)))) # 增加一列target, 将目标变量进行编码 IRIS['target'] = IRIS[target_var].apply(lambda x: Class_dict[x]) # 对目标变量进行0-1编码(One-hot Encoding) lb = LabelBinarizer() lb.fit(list(Class_dict.values())) transformed_labels = lb.transform(IRIS['target']) y_bin_labels = [] # 对多分类进行0-1编码的变量 for i in range(transformed_labels.shape[1]): y_bin_labels.append('y' + str(i)) IRIS['y' + str(i)] = transformed_labels[:, i] # 将数据集分为训练集和测试集 train_x, test_x, train_y, test_y = train_test_split(IRIS[features], IRIS[y_bin_labels], train_size=0.7, test_size=0.3, random_state=0) return train_x, test_x, train_y, test_y, Class_dict class JobParam: """训练脚本参数 """ # required parameters job_id = '' round = 0 epoch = 0 model_file = '' dataset_path = '' eval_only = False # optional parameters weights_file = '' output = '' param = '' def parse_from_command_line(self): """从命令行中解析作业参数 """ opts, args = getopt.getopt(sys.argv[1:], 'hn:w:', ['round=', 'epoch=', 'model_file=', 'eval_only', 'dataset_path=', 'weights_file=', 'output=', 'param=', 'job_id=']) for key, value in opts: if key in ['--round']: self.round = int(value) if key in ['--epoch']: self.epoch = int(value) if key in ['--model_file']: self.model_file = value if key in ['--eval_only']: self.eval_only = True if key in ['--dataset_path']: self.dataset_path = value if key in ['--weights_file']: self.weights_file = value if key in ['--output']: self.output = value if key in ['--param']: self.param = value if key in ['--job_id']: self.job_id = value if __name__ == '__main__': train()
-
创建连接器 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“计算节点管理”。 在“计算节点管理”页面,查找需要发布数据的计算节点名称,单击“计算节点名称”进入计算节点详情页。 图1 选择计算节点 在“计算节点详情”页,单击“前往计算节点”,在登录页正确输入部署计算节点时设置的“登录用户名”和“密码”。 图2 前往计算节点 登录成功后,进入到计算节点界面,选择左侧导航栏中“连接器管理”,单击“创建”,在弹出的界面配置创建连接器的参数,配置完成后单击“确定”。 测试功能为数据源连通性及密码正确性的检查测试。 图3 创建连接器(以RDS服务为例) 表1 参数说明 参数名 描述 连接器类型 “连接器类型”选择Hive连接时,需要选择Hive版本,当前仅支持MRS2.x和MRS3.x版本,选择的MRS集群需与当前计算节点部署CCE或IEF(非云上IEF节点不支持接入Hive)在同一VPC。“用户名”为MRS集群中拥有Hive权限的集群用户,“用户认证凭据”需要上传对应用户的认证凭据,请在MapReduce服务的下载用户认证文件中获取。 “连接器类型”选择RDS服务时,所选择的RDS服务实例需与计算节点在同一VPC下,且端口开放。填写的用户名,需具有数据库的读写权限(参考修改权限)。“密码”为该用户登录RDS实例的密码。 “连接器类型”选择MySql时,需保证计算节点与数据库所在虚机的连通性,“驱动文件”需与目标MySQL数据库版本一致。驱动类名com.mysql.cj.jdbc.Driver,仅支持mysql-connector-java-5.x以后的版本,驱动文件请在Mysql驱动下载地址中获取。 “连接器类型” 选择DWS连接时,填写的用户名,需具有数据库的读写权限(参考权限管理)。“密码”为该用户登录DWS实例的密码。 “连接器类型” 选择ORACLE连接时,需保证计算节点与数据库的连通性,当前仅支持ORACLE 12c和19c版本。驱动文件需与目标ORACLE数据库版本一致,请在ORACLE驱动下载地址中获取。 “连接器类型” 选择API连接时,需保证计算节点与api接口的连通性,当前仅支持基础认证方式。 连接器名称 根据实际情况设置即可。 数据库版本 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置即可。 数据库名称 “连接器类型”选择ORACLE时,呈现此参数。根据实际情况设置即可。 数据库服务器 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 端口 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 实例名称 “连接器类型”选择RDS或DWS服务时,呈现此参数。下拉选择实例即可。 数据库 “连接器类型”选择DWS服务时,呈现此参数。可手动输入DWS服务里面购买的数据库名称。 用户名 用户根据实际情况设置。 密码 用户根据实际情况设置。 驱动类名 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置,注意驱动类名com.mysql.cj.jdbc.Driver仅支持mysql-connector-java-5.x以后的版本。 JDBC URL “连接器类型”选择MySql时,呈现此参数。JDBC访问端口。取值样例:198.0.0.1:3306。 驱动文件 “连接器类型”选择MySql和ORACLE时,呈现此参数。JDBC驱动。 其他属性 “连接器类型”选择MySql时,呈现此参数。用户根据实际情况设置任务所需的Key和Value。
-
前提条件 计算节点处于运行中,且所在空间信息的“认证状态”为“已认证”。 建议使用者提前了解MapReduce服务(MRS Hive)集群。 “连接器类型”选择MapReduce服务(MRS Hive)时,选择的MRS集群需与当前计算节点部署CCE在同一VPC。填写的用户名,需具有Hive的读写权限。“集群名称”为用户所需要使用的MRS Hive数据源所在的MRS集群。“用户名”为MRS集群中拥有Hive权限的集群用户。
-
服务授权操作 进入TICS服务控制台,为保证正常创建TICS服务,需要先设置服务委托。 进入计算节点购买页面,在“部署配置”区域,设置部署方式为“边缘节点部署”,在弹出的对话框单击“同意授权”。 同意授权后,TICS将在 统一身份认证 服务IAM下为您创建名为tics_admin_trust的委托,委托绑定的权限名为tics_role_trust。授权成功后,可以进入委托列表查看。 图1 授权访问权限名 委托tics_admin_trust和权限tics_role_trust创建成功后,请勿删除。 表1 TICS委托权限列表 权限名 详细信息 备注 tics_role_trust TICS服务计算节点依赖IEF作为底层资源,因此需要tics_role_trust角色来部署应用。 由于云服务缓存需要时间,该权限3分钟左右才能生效。
-
乳腺癌数据集作业结果 本节实验包含了如下三个部分:(1)训练轮数对联邦学习模型分类性能的影响;(2)迭代次数对联邦学习模型分类性能的影响;(3)参与方数据量不同时,本地独立训练对比横向联邦的模型性能。 不同训练参数对模型准确率、训练时长的影响 训练轮数对模型准确率的影响(迭代次数固定为20) 训练轮数 1 10 20 测试集准确率 (%) 98.016 98.016 98.016 测试集AUC 0.996 0.996 0.996 训练时长 (秒) 19 173 372 迭代轮数对模型准确率、训练时长的影响(训练轮数固定为10) 迭代次数 10 25 50 测试集准确率 (%) 97.065 98.140 98.415 测试集AUC 0.995 0.996 0.997 训练时长 (秒) 166 167 216 从上面两张表可以看出: (1)训练轮数对于联邦学习模型的性能影响不大,这主要是由于乳腺癌数据集的分类相对简单,且数据集经过了扩充导致的; (2)增大每个参与方本地模型训练的迭代次数,可以显著提升最终联邦学习模型的性能。 参与方数据量不同时,独立训练对比横向联邦训练的准确率 本节实验不再将训练集均匀划分到两个参与方,而是以不同的比例进行划分,从而探究当参与方数据量不同时,模型性能的变化情况。具体划分如下所示。实验中训练轮数固定为10,迭代次数固定为50。 参与方持有的样本数目信息 Host所持样本占比(%) Host样本数 Guest样本数 0.2 2946 11786 0.4 5892 8840 0.6 8839 5893 0.8 11785 2947 下图为当Host方拥有不同数据量时,使用横向联邦对比己方独立训练的性能对比。 图1 Host方拥有不同数据量时,横向联邦对比对立训练的模型性能 结论为:使用横向联邦学习,在己方拥有不同数据量的情况下都可以显著提升模型性能。 父主题: 实验结果
-
评估型横向联邦作业流程 基于横向联邦作业的训练结果,可以进一步评估横向联邦模型,将训练好的模型用于预测。 选择对应训练型作业的“历史作业”按钮,获取最新作业的模型结果文件路径。 图1 查看模型结果文件的保存位置 前往工作节点上步骤1展示的路径,下载模型文件。由于Logistic Regression模型本质上还是线性模型,因此模型文件result_10为该线性模型的系数加上偏置项。 图2 查看模型结果文件 本地利用测试集评估模型。可以采用如下脚本,会打印出模型在测试集上的准确率和AUC两个指标。 图3 本地评估模型的Python脚本 父主题: 测试步骤
-
训练型横向联邦作业流程 联邦学习分为横向联邦及纵向联邦。相同行业间,特征一致,数据主体不同,采用横向联邦。不同行业间,数据主体一致,特征不同,采用纵向联邦。xx医院的应用场景为不同主体的相同特征建模,因此选用横向联邦。 创建训练型横向联邦学习作业。 图1 创建训练型横向联邦学习作业 配置作业的执行脚本,训练模型文件。 执行脚本是每个参与方的计算节点在本地会执行的模型训练、评估程序,用于基于本地的数据集训练子模型。 训练模型文件则定义了模型的结构,会用于每个参与方在本地初始化模型。 图2 配置执行脚本、训练模型文件 配置已方、对方数据集。在作业的数据集配置中,选择己方、对方的本地数据集,此外需将已方的数据集设为评估数据集。横向联邦中,需要确保不同参与方的数据集结构完全一致。 图3 配置数据集 保存并执行作业。单击下方的“保存并执行”按钮,即可发起执行横向联邦学习作业。 单击“历史作业”按钮,查看当前作业的执行情况。 单击“计算过程”按钮可以查看作业的具体执行计划。 单击“执行结果”按钮可以查看作业保存的模型文件路径,用于后续的评估型作业。 图4 查看作业的执行情况 图5 查看作业的具体执行计划 图6 查看作业的执行结果 父主题: 测试步骤
-
操作步骤 进入TICS服务控制台。 在计算节点管理中,找到购买的计算节点,通过登录地址,进入计算节点控制台。 图1 前往计算节点 登录到计算节点后,进入数据管理并进行数据集发布。 图2 数据管理中新建数据集 参考下图填写参数信息。(1)指定连接器为localConnector,选择数据文件的路径,填写数据名称;(2)字段配置中特征字段(x_{特征序号})均配置为字段类型:FLOAT,字段类别:特征,特征类型:连续;标签字段(label)配置为字段类型:INTEGER,字段类别:标签。 图3 配置数据集参数 发布数据集。 图4 发布数据集 数据集发布的过程并不会直接从数据源中导出用户数据,仅从数据源处获取了数据集相关的元数据信息,用于任务的解析、验证等。
-
背景信息 本案例以“预测乳腺癌是良性/恶性”的场景为例。假设一部分的乳腺癌患者数据存储在xx医院,另一部分数据存储在某个其他机构,不同机构数据所包含的特征相同。 这种情况下,xx医院想申请使用其他机构的乳腺癌患者数据进行乳腺癌预测模型建模会非常困难。因此可以通过华为TICS 可信智能计算 平台的横向联邦功能,实现在患者隐私不泄露的前提下,利用其他机构的医疗数据提升乳腺癌预测模型的准确率。 进一步地,可根据该模型案例发散,构建老年人健康预测、高血压预测、失能早期预警模型等。 图1 乳腺癌预测研究应用场景示意 作业发起方通过计算节点上传数据、待训练模型的定义文件; 作业发起方配置TICS的横向联邦学习作业,启动训练; 模型参数、梯度数据在TICS提供的安全聚合节点中进行加密交换; 训练过程中,各参与方计算节点会在本地生成子模型,由TICS负责安全聚合各子模型的参数,得到最终的模型; 空间的整体配置通过空间管理员进行统一管理。
-
执行实时隐匿查询作业 企业A在发起实时隐匿查询前需要先执行数据初始化。 待实时预测作业初始化完成后,企业A可以通过页面单击“执行”试用发起查询。 例如查询id为“19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7”这样的一条数据,查询结果中即会返回企业A所选择的企业B的数据字段。 同时企业A的业务系统后台也可以通过API调用的方式调用企业A计算节点的接口发起实时隐匿查询,更好地服务生产业务。 父主题: 外部数据共享
-
准备数据 企业A的实时业务不需要准备数据,在发起查询时通过参数传递需要查询的用户id。 表1 企业B用户画像数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 f0-f4 float 用户数据画像特征 bigdata_all.csv id,f0,f1,f2,f3,f4 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9,-0.246852445,-1.761531756,-2.840375975,-0.562750693,-2.23499737 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,-1.216062821,-1.093614452,-1.632396806,0.887601314,-4.40930101 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce,-0.150047899,-1.323266508,3.01679156,1.728583156,0.656158732 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a,-0.333871414,-1.21968931,-0.082894791,0.020390259,-0.076884947 ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d,-2.438861166,0.111880807,-3.51428545,1.123004835,0.228893969 e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683,-2.759963795,0.405262468,1.264947591,1.027350049,1.293868423 7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451,0.189352371,-0.607297495,-0.808339321,2.048455567,1.303872778 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,0.390064223,0.664175034,3.20228741,0.380574513,0.017733811 19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7,0.379250902,1.962293246,0.066277661,3.083228267,1.952626328 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,-0.070919538,-2.219653517,1.461645551,1.66185096,0.778770954 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8,-0.771151327,-1.184821181,-0.674077615,-0.379858223,0.158957184 6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918,-0.738091802,-1.474822882,2.93475295,-3.763763721,-1.817301398 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-0.483250226,0.616586578,3.001851708,2.407914633,0.856369412 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,-0.789268594,1.071733834,3.763254446,-3.760298263,0.49776472 e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb,-0.372531118,1.559382514,2.403559204,-0.041093457,0.169341125 b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9,-2.773477116,-1.137653133,-1.50133841,0.82842642,-1.25476711 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3,-1.542814756,1.019110477,1.395515599,0.539956076,0.100325065 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,0.024227451,-1.087235302,3.67470964,-2.420729037,-3.132456573 父主题: 外部数据共享
-
场景描述 现有企业A和企业B达成了一项数据共享合作协议,企业B允许企业A根据用户id查询企业B的数据,辅助企业A的实时分析业务。而企业A不想暴露给企业B自己查询的用户id,因为查询该用户的信息隐含着“该用户是企业A的客户”的信息,存在用户隐私泄露的风险。 企业A和企业B可以使用TICS服务的实时隐匿查询功能,既能满足实时业务高效低延迟的业务需求,又能避免暴露企业A想要查询哪个用户的隐私安全风险。 父主题: 外部数据共享
-
准备数据 A方提供了待查询的用户ID数据,样例如下: blacklist_query.csv id 1914fd1aef9346e7a1b0a63c95aa918e 6b86b273ff34fce19d6b804eff5a3f57 66985617b4f74d14b4eceeaa25d61f5e 935098fe075343a5864db257bc40dfa5 d4735e3a265e16eee03f59718b9b5d03 4ec9599fc203d176a301536c2e091a19 79f2c17703f0442ebb4d57800e2666a2 ea9257156eca491cada3e38b6d1000e9 acdef43b89014fab8d5916b7ce756f75 3855ad3d30c446ed94a0f34dbd7be63e d9465361c73549739fd0ae252705c190 B方提供了共享的黑名单用户ID名单,样例如下: blacklist_all.csv id 5feceb66ffc86f38d952786c6d696c79 6b86b273ff34fce19d6b804eff5a3f57 d4735e3a265e16eee03f59718b9b5d03 4b227777d4dd1fc61c6f884f48641d02 ef2d127de37b942baad06145e54b0c61 e7f6c011776e8db7cd330b54174fd76f 7902699be42c8a8e46fbbb4501726517 2c624232cdd221771294dfbb310aca00 19581e27de7ced00ff1ce50b2047e7a5 4a44dc15364204a80fe80e9039455cc1 6b51d431df5d7f141cbececcf79edf3d 3fdba35f04dc8c462986c992bcf87554 8527a891e224136950ff32ca212b45bc e629fa6598d732768f7c726b4b621285 b17ef6d19c7a5b1ee83b907c595526dc 4523540f1504cd17100c4835e85b7eef 4ec9599fc203d176a301536c2e091a19 9400f1b21cb527d7fa3d3eabba93557a 父主题: 隐私求交黑名单共享场景
-
场景描述 有效的风险控制能够消灭或减少风险事件发生的各种可能性,或减少风险事件发生时造成的损失,对于企业具有重要意义。现阶段,企业级的单方风控体系已逐步建立,在机构内数据统一共享的基础上实现了覆盖业务前、中、后各环节的智能风控。然而,单方数据风控面临存在数据不全面、风控不及时的问题。随着隐私计算等技术为数据要素的有效流通提供了必要手段,多方数据联合风控成为新趋势。其中,黑名单共享查询是风控中的一个重要环节,企业间的黑名单共享能有效发挥风险联防联控效用。 在信息核验过程中,通过隐私计算技术实现多方黑名单数据共享,对电诈、洗钱、骗贷等行为的黑名单用户进行安全求交、匿踪查询,能够有效提升客户背景调查的安全可信程度。 现有两家企业A、B,双方决定通过TICS平台实现黑名单数据共享,通过隐私求交作业计算两方黑名单ID交集。本文以企业A为计算作业的发起方为例。 父主题: 隐私求交黑名单共享场景
-
发起联邦预测 企业A单击“发起预测”按钮,选择己方和大数据厂商B的预测数据集,单击确定即可发起预测。 TICS服务会对两方的数据先进行样本对齐,并对双方共有的数据进行联邦预测,预测的结果会保存在企业A(作业发起方)的计算节点上。企业A可以通过obs服务或者登录到计算节点后台获取到对应路径的文件。 当只有一方提供特征时,预测的结果如下,第一列是用户的id,第二列是用户是否是高价值用户的标签,第三列、第四列是对应的概率: id,label,proba_0,proba_1 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce, 1,0.268941,0.731059 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3, 0,0.731059,0.268941 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61, 0,0.731059,0.268941 可以看出企业A提供的预测数据集中有部分用户被模型预测成了高价值的客户,后续企业A可以对这一部分用户进行定向精准营销,缩小营销广告的投放范围,减少了营销的成本。 当两方都提供特征时,预测结果分为对齐id文件(只有一列id)和预测结果文件(包括预测结果标签、0的概率、1的概率),两个文件的行数相等且每一行相互对应。 至此,企业A完成了整个TICS联邦建模的流程,并将模型应用到了营销业务当中。这个预测作业可以作为后续持续预测的依据,企业A可以定期地使用模型预测自己的新业务数据。同时企业A也可以根据新积累的数据训练出新的模型,进一步优化模型预测的精确率,再创建新的联邦预测作业,产出更精准的预测结果供业务使用。 父主题: 使用TICS联邦预测进行新数据离线预测
-
准备数据 企业A和大数据厂商B需要按照训练模型使用的特征,提供用于预测的数据集,要求预测的数据集特征必须包含训练时使用的特征。 表1 企业A的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 col0-col4 float 企业A数据特征 industry_predict.csv id,col0,col1,col2,col3,col4 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce,-0.823913755,0.787712038,0.429635596,-1.315646486,-1.652321611 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,3.041881096,-0.651684341,3.661649955,0.035548734,3.477873904 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,0.162210842,0.177167621,4.553682264,-1.103220799,2.375621631 注意由于这是新产生的业务数据,企业A并不知道这些用户是否是高价值用户,因此没有label用户标签字段。 表2 大数据厂商B的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 f0-f4 float 大数据厂商数据特征 bigdata_all.csv id,f0,f1,f2,f3,f4 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9,-0.246852445,-1.761531756,-2.840375975,-0.562750693,-2.23499737 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,-1.216062821,-1.093614452,-1.632396806,0.887601314,-4.40930101 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce,-0.150047899,-1.323266508,3.01679156,1.728583156,0.656158732 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a,-0.333871414,-1.21968931,-0.082894791,0.020390259,-0.076884947 ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d,-2.438861166,0.111880807,-3.51428545,1.123004835,0.228893969 e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683,-2.759963795,0.405262468,1.264947591,1.027350049,1.293868423 7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451,0.189352371,-0.607297495,-0.808339321,2.048455567,1.303872778 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,0.390064223,0.664175034,3.20228741,0.380574513,0.017733811 19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7,0.379250902,1.962293246,0.066277661,3.083228267,1.952626328 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,-0.070919538,-2.219653517,1.461645551,1.66185096,0.778770954 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8,-0.771151327,-1.184821181,-0.674077615,-0.379858223,0.158957184 6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918,-0.738091802,-1.474822882,2.93475295,-3.763763721,-1.817301398 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-0.483250226,0.616586578,3.001851708,2.407914633,0.856369412 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,-0.789268594,1.071733834,3.763254446,-3.760298263,0.49776472 e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb,-0.372531118,1.559382514,2.403559204,-0.041093457,0.169341125 b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9,-2.773477116,-1.137653133,-1.50133841,0.82842642,-1.25476711 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3,-1.542814756,1.019110477,1.395515599,0.539956076,0.100325065 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,0.024227451,-1.087235302,3.67470964,-2.420729037,-3.132456573 其中为了保证数据安全,企业A和大数据厂商B通过讨论决定使用hash过后的手机号作为已有数据的唯一标识id字段,并将唯一标识作为数据对齐的依据。 父主题: 使用TICS联邦预测进行新数据离线预测
-
场景描述 某企业A在进行新客户营销时的成本过高,想要通过引入外部数据的方式提高营销的效果,降低营销成本。 因此企业A希望与某大数据厂商B展开一项合作,基于双方共有的数据进行联邦建模,使用训练出的联邦模型对新数据进行联邦预测,筛选出高价值的潜在客户,再针对这些客户进行定向营销,达成提高营销效果、降低营销成本的业务诉求。 根据前一篇文章,企业A已经通过可信联邦学习功能训练出了一个预测客户时候是高价值用户的模型。 本文主要介绍企业A和大数据厂商B如何通过已有的模型对新的业务数据进行预测。 父主题: 使用TICS联邦预测进行新数据离线预测
-
筛选特征 样本对齐执行完成后单击下一步进入“特征选择”页面,这一步企业A需要选出企业A自己和大数据厂商B的特征及标签用于后续的训练。 企业A可以选择特征及标签后“启动分箱和IV计算”,通过联邦的统计算法计算出所选特征的iv值,一般而言iv值较高的特征更有区分性,应该作为首选的训练特征;过低的iv值没有区分性会造成训练资源的浪费,过高的iv值又过于突出可能会过度影响训练出来的模型。 例如这里大数据厂商提供的f4特征iv值是0,说明这个特征对于标签的识别没有区分度,可以不选用;而f0、f2特征的iv值中等,适合作为模型的训练特征。 根据计算得出的iv值,企业A调整了训练使用的特征,没有选用双方提供的特征全集,去掉了部分iv值较低的特征,减少了无用的计算消耗。 父主题: 使用TICS可信联邦学习进行联邦建模
-
准备数据 首先,企业A和大数据厂商B需要商议确定要提供的数据范围及对应的元数据信息,双方初始决定使用最近三个月的已有用户转化数据作为联邦训练的训练集和评估集,之后使用每周产生的新数据作为联邦预测的预测集。 表1 企业A的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 col0-col4 label float int 企业A数据特征 企业A对用户的标签属性 industry_all.csv id,col0,col1,col2,col3,col4,label 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9,-1.4092505981594734,-0.5893679205612337,-4.467396692737264,1.370376187747878,-1.236832500268279,1 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,-1.5143756509526236,-1.9007475942180778,-5.617412558508785,2.2624690030531363,0.2886799132470795,0 d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35,-1.768367116508903,1.2721845837988317,1.1497337351126178,-1.3322677230347135,0.9716103319957519,1 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a,0.37260755643902965,-0.2919401803207504,0.08086265459068624,0.3915016044811785,-0.01227642831882032,1 ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d,-2.963183239713765,0.15113195842028704,-3.8749664899828824,1.0598464836794779,-4.400883309764479,1 e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683,-0.35120767987472346,1.8018318746365054,1.4431627055321963,0.33307198119824927,0.8626132267902704,0 7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451,-2.6642415757243825,0.8836647864509011,-1.2340786744195096,-1.4945873871135977,-2.6999504889710626,1 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,3.0418810956792526,-0.6516843409674193,3.6616499550343105,0.035548733627266224,3.477873903864847,0 19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7,-0.8239137547429756,0.7877120377027675,0.4296355963569869,-1.315646485980162,-1.652321610851379,1 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,0.24150521920304757,-0.21911471888817458,1.5143874504690156,-0.6652345113435701,0.17857570592695637,0 6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918,0.9669487046029339,-1.5427187535294289,2.490658334326762,0.4233920429380765,2.972622142213776,0 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-1.847252571492643,0.4969814473631169,1.6544165211185982,-1.9450069019776826,0.39415199332185435,1 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,0.1622108420432964,0.1771676208189943,4.55368226430978,-1.1032207991089722,2.375621631048501,0 e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb,4.0527809556953,1.2053939486734313,3.260708709473611,1.1400990661834884,5.025657734758696,0 b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9,-0.21563539406333465,0.5231489445682316,-2.639937297036372,2.3738020768486425,0.34341393069722226,1 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3,-0.5935568930535046,-0.35175055806960276,0.9645122559090376,-0.017390131639078914,0.09256256476781644,1 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,1.0066513658973761,-0.9724037855292317,1.314115256428494,0.363296291355055,5.171128738363806,0 9400f1b21cb527d7fa3d3eabba93557a18ebe7a2ca4e471cfe5e4c5b4ca7f767,0.1406977237605178,-1.455646778048175,-0.7223212422509906,1.265951206785454,-0.5504387433588089,1 表2 大数据厂商B的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 f0-f4 float 大数据厂商数据特征 bigdata_all.csv id,f0,f1,f2,f3,f4 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9,-0.246852445,-1.761531756,-2.840375975,-0.562750693,-2.23499737 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,-1.216062821,-1.093614452,-1.632396806,0.887601314,-4.40930101 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce,-0.150047899,-1.323266508,3.01679156,1.728583156,0.656158732 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a,-0.333871414,-1.21968931,-0.082894791,0.020390259,-0.076884947 ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d,-2.438861166,0.111880807,-3.51428545,1.123004835,0.228893969 e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683,-2.759963795,0.405262468,1.264947591,1.027350049,1.293868423 7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451,0.189352371,-0.607297495,-0.808339321,2.048455567,1.303872778 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,0.390064223,0.664175034,3.20228741,0.380574513,0.017733811 19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7,0.379250902,1.962293246,0.066277661,3.083228267,1.952626328 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,-0.070919538,-2.219653517,1.461645551,1.66185096,0.778770954 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8,-0.771151327,-1.184821181,-0.674077615,-0.379858223,0.158957184 6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918,-0.738091802,-1.474822882,2.93475295,-3.763763721,-1.817301398 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-0.483250226,0.616586578,3.001851708,2.407914633,0.856369412 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,-0.789268594,1.071733834,3.763254446,-3.760298263,0.49776472 e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb,-0.372531118,1.559382514,2.403559204,-0.041093457,0.169341125 b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9,-2.773477116,-1.137653133,-1.50133841,0.82842642,-1.25476711 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3,-1.542814756,1.019110477,1.395515599,0.539956076,0.100325065 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,0.024227451,-1.087235302,3.67470964,-2.420729037,-3.132456573 其中为了保证数据安全,企业A和大数据厂商B通过讨论决定使用hash过后的手机号作为已有数据的唯一标识id字段,并将唯一标识作为数据对齐的依据。 父主题: 使用TICS可信联邦学习进行联邦建模
-
场景描述 某企业A在进行新客户营销时的成本过高,想要通过引入外部数据的方式提高营销的效果,降低营销成本。 因此企业A希望与某大数据厂商B展开一项合作,基于双方共有的数据进行联邦建模,使用训练出的联邦模型对新数据进行联邦预测,筛选出高价值的潜在客户,再针对这些客户进行定向营销,达成提高营销效果、降低营销成本的业务诉求。 基于多方安全计算功能准备好合适的数据,本文主要介绍双方对已有的数据进行样本对齐、特征筛选和联邦建模,并对产生的模型进行评估。 父主题: 使用TICS可信联邦学习进行联邦建模
-
准备数据 首先,企业A和大数据厂商B需要商议确定要提供的数据范围及对应的元数据信息,例如双方初始决定使用最近三个月的已有用户转化数据作为联邦训练的训练集和评估集。 表1 企业A的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 col0-col4 float 企业A数据特征 label int 企业A对用户的标签属性 industry1.csv id,col0,col1,col2,col3,col4,label 19581e27de7ced00ff1ce50b2047e7a567c76b1cbaebabe5ef03f7c3017bb5b7,-0.823913755,0.787712038,0.429635596,-1.315646486,-1.652321611,1 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,3.041881096,-0.651684341,3.661649955,0.035548734,3.477873904,0 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-1.847252571,0.496981447,1.654416521,-1.945006902,0.394151993,1 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3,-0.593556893,-0.351750558,0.964512256,-0.017390132,0.092562565,1 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,0.241505219,-0.219114719,1.51438745,-0.665234511,0.178575706,0 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a,0.372607556,-0.29194018,0.080862655,0.391501604,-0.012276428,1 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce,1.544282251,-0.203027285,3.076050022,-0.530666302,2.156693386,0 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,1.006651366,-0.972403786,1.314115256,0.363296291,5.171128738,0 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8,-2.859681221,-1.465959913,-0.930994729,-0.773533542,-3.673734138,0 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9,-1.409250598,-0.589367921,-4.467396693,1.370376188,-1.2368325,1 大数据厂商B的数据如下,一共有10条记录。 表2 大数据厂商B的数据 字段名称 字段类型 描述 id string hash过后的手机号字符串 f0-f4 float 大数据厂商数据特征 bigdata1.csv id,f0,f1,f2,f3,f4 2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3,0.390064223,0.664175034,3.20228741,0.380574513,0.017733811 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278,-0.483250226,0.616586578,3.001851708,2.407914633,0.856369412 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5,-0.070919538,-2.219653517,1.461645551,1.66185096,0.778770954 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a,0.024227451,-1.087235302,3.67470964,-2.420729037,-3.132456573 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8,-0.771151327,-1.184821181,-0.674077615,-0.379858223,0.158957184 6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918,-0.738091802,-1.474822882,2.93475295,-3.763763721,-1.817301398 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,-1.216062821,-1.093614452,-1.632396806,0.887601314,-4.40930101 8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61,-0.789268594,1.071733834,3.763254446,-3.760298263,0.49776472 e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683,-2.759963795,0.405262468,1.264947591,1.027350049,1.293868423 其中为了保证数据安全,企业A和大数据厂商B通过讨论决定使用hash过后的手机号作为已有数据的唯一标识id字段,并将唯一标识作为数据对齐的依据。 父主题: 使用TICS多方安全计算进行联合样本分布统计
-
场景描述 某企业A在进行新客户营销时的成本过高,想要通过引入外部数据的方式提高营销的效果,降低营销成本。 因此企业A希望与某大数据厂商B展开一项合作,基于双方共有的数据进行联邦建模,使用训练出的联邦模型对新数据进行联邦预测,筛选出高价值的潜在客户,再针对这些客户进行定向营销,达成提高营销效果、降低营销成本的业务诉求。 本文主要介绍在进行建模之前,双方需要对已有的数据进行碰撞求交,找到双方共有的数据,了解数据的分布情况并为后续的建模做好调整。 父主题: 使用TICS多方安全计算进行联合样本分布统计
-
导入数据 在第一个合作方Partner1的MySQL数据源中,通过如下的SQL语句创建数据表: CREATE TABLE tax ( id integer COMMENT '企业id' , tax_bal integer COMMENT '税收金额' , industry varchar(150) COMMENT '行业' ); CREATE TABLE support ( id integer COMMENT '企业id' , supp_bal integer COMMENT '资助金额', industry varchar(150) COMMENT '行业' ); 在第二个合作方Partner2的MySQL数据源中,通过如下的SQL语句创建数据表: CREATE TABLE power ( id integer COMMENT '企业id' , electric_bal integer COMMENT '电费', water_bal integer COMMENT '水费' ); 将下面的数据分别导入csv文件并上传到MySQL数据源所在服务器。 Tax表的数据如下: id,tax_bal,industry 123400999,745,互联网 123400998,324,其他 123400997,664,其他 123400996,243,金融 123400995,715,互联网 123400994,475,通讯 123400993,526,其他 123400992,272,互联网 123400991,646,金融 123400990,510,其他 Support表的数据如下: id,supp_bal,industry 123400999,314,互联网 123400998,405,其他 123400997,371,其他 123400996,484,金融 123400995,381,互联网 123400994,405,通讯 123400993,292,其他 123400992,503,互联网 123400991,303,金融 123400990,412,其他 Power表的数据如下: id,electric_bal,water_bal 123400999,79,48 123400998,57,70 123400997,69,37 123400996,50,57 123400995,66,50 123400994,56,55 123400993,63,53 123400992,45,76 123400991,80,36 123400990,39,63 执行如下SQL语句,将csv文件内的数据导入创建的数据表。 LOAD DATA INFILE 'csv数据文件名' INTO TABLE 表名 或者执行如下的插入语句: Tax表: insert into tax values (123400999,745,'互联网'), (123400998,324,'其他' ), (123400997,664,'其他' ), (123400996,243,'金融' ), (123400995,715,'互联网' ), (123400994,475,'通讯' ), (123400993,526,'其他'), (123400992,272,'互联网' ), (123400991,646,'金融' ), (123400990,510,'其他'); Support表: insert into support values (123400999,314,'互联网' ), (123400998,405,'其他' ), (123400997,371,'其他' ), (123400996,484,'金融' ), (123400995,381,'互联网' ), (123400994,405,'通讯' ), (123400993,292,'其他' ), (123400992,503,'互联网' ), (123400991,303,'金融' ), (123400990,412,'其他'); Power表: insert into power values (123400999,79,48), (123400998,57,70), (123400997,69,37), (123400996,50,57), (123400995,66,50 ), (123400994,56,55), (123400993,63,53), (123400992,45,76), (123400991,80,36), (123400990,39,63);
-
数据准备 以下数据和表结构是根据场景进行模拟的数据,并非真实数据。 以下数据需要提前存导入到MySQL\Hive\Oracle等用户所属数据源中,TICS本身不会持有这些数据,这些数据会通过用户购买的计算节点进行加密计算,保障数据安全。 政府信息提供方的数据tax和support,在用户计算节点agent_gov上发布。 能源信息提供方的数据power,在用户计算节点agent_power上发布。 表1 企业税收和资助金情况表tax 列名 含义 字段分类 Id 企业id 唯一标识 tax_bal 税收 敏感 Industry 行业类型 不敏感 表2 企业政府资助金数据表support 列名 含义 字段分类 Id 企业id 唯一标识 supp_bal 资助金的金额 敏感 Industry 行业类型 不敏感 表3 企业水电情况表power 列名 含义 字段分类 Id 企业id 唯一标识 electric_bal 电费 敏感 water_bal 水费 敏感 从业务角度考虑,安排五个阶段,来对TICS系统进行验证和测试。本章重点讲述如何端到端实现一个该场景下的隐私计算作业完整执行流程。
-
操作步骤 进入TICS服务控制台。 在计算节点管理中,找到购买的计算节点,通过登录地址,进入计算节点控制台。 图1 前往计算节点 登录计算节点后,在下图所述位置新建连接器。 图2 新建连接器 输入正确的连接信息,建立数据源和计算节点之间的安全连接。 图3 输入信息 建立完成后,连接器显示正常说明连接正常。 图4 连接正常 进入数据管理,进行数据集发布。 图5 新建数据管理 填写参数信息。 图6 填写参数 重复步骤1~7,发布tax税务表和power_data能源表。 数据发布的过程并不会直接从数据源中导出用户数据,仅从数据源处获取了数据集相关的元数据信息,用于任务的解析、验证等。
-
开发环境简介 在进行多方安全计算应用开发时,要准备的环境如表1所示。 同时需要准备运行调测的Linux环境,用于验证应用程序运行正常。 表1 准备项 准备项 说明 购买TICS服务 在TICS控制台通过下单建立数据空间,或者将租户加入已有的数据空间。 部署计算节点 在TICS控制台通过购买计算节点,支持接入数据空间进行操作。 创建连接器 在计算节点中,通过连接器连接数据源,用于后续的加密计算操作。 网络 确保计算节点能够与TICS空间部署节点互联互通。 父主题: 环境准备
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- ...
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333