跳到主要内容
版本:0.6.0

配置文件

Standalone Instance 是安装在用户的笔记本或开发服务器上,以Linux/Mac用户为粒度进行隔离。用户通过 pip 命令安装 Starwhale Python package 并执行任意 swcli 命令后,就可以在 ~/.config/starwhale/config.yaml 中查看该用户的 Starwhale 配置。绝大多数情况加用户不需要手工修改config.yaml文件

~/.config/starwhale/config.yaml 文件权限为 0o600,由于里面存有密钥信息,不建议用户修改该文件权限。您可以通过swci config edit来修改配置:

swcli config edit

config.yaml 例子

典型的 config.yaml 文件内容如下:

  • 当前默认默认 Instance 为 local。
  • cloud-cn/cloud-k8s/pre-k8s 三个为 Cloud Instance,local 为 Standalone Instance。
  • Standalone 本地存储的根目录为 /home/liutianwei/.starwhale
current_instance: local
instances:
cloud-cn:
sw_token: ${TOKEN}
type: cloud
updated_at: 2022-09-28 18:41:05 CST
uri: https://cloud.starwhale.cn
user_name: starwhale
user_role: normal
cloud-k8s:
sw_token: ${TOKEN}
type: cloud
updated_at: 2022-09-19 16:10:01 CST
uri: http://cloud.pre.intra.starwhale.ai
user_name: starwhale
user_role: normal
local:
current_project: self
type: standalone
updated_at: 2022-06-09 16:14:02 CST
uri: local
user_name: liutianwei
pre-k8s:
sw_token: ${TOKEN}
type: cloud
updated_at: 2022-09-19 18:06:50 CST
uri: http://console.pre.intra.starwhale.ai
user_name: starwhale
user_role: normal
link_auths:
- ak: starwhale
bucket: users
connect_timeout: 10.0
endpoint: http://10.131.0.1:9000
read_timeout: 100.0
sk: starwhale
type: s3
storage:
root: /home/liutianwei/.starwhale
version: '2.0'

config.yaml 字段说明

参数说明类型默认值是否必须
current_instance默认使用的instance名字,一般用 swcli instance select 命令设置Stringself
instances管理的 Instances,包括 Standalone, Server 和 Cloud Instance,至少会有 Standalone Instance(名称为local),Server/Cloud Instance有一个或多个,一般用 swcli instance login 登陆一个新的instance,swcli instance logout 退出一个instanceDictStandalone Instance,名称为local
instances.{instance-alias-name}.sw_token登陆Token,只对Server/Cloud Instance生效,后续swcli对Server/Cloud Instance进行操作时都会使用该Token。需要注意Token有过期时间,默认1个月,可以在Server/Cloud Instance中进行设置StringCloud-是,Standalone-否
instances.{instance-alias-name}.typeinstance类型,目前只能填写 cloudstandaloneChoice[String]
instances.{instance-alias-name}.uri对于Server/Cloud Instance,uri是http/https地址,对于Standalone Instance,uri是 localString
instances.{instance-alias-name}.user_name用户名String
instances.{instance-alias-name}.current_project当前Instance下默认的Project是什么,在URI的表述中会作为project字段进行默认填充,可以通过 swcli project select 命令进行设置String
instances.{instance-alias-name}.user_role用户角色Stringnormal
instances.{instance-alias-name}.updated_at该条Instance配置更新时间时间格式字符串
storage与本地存储相关的设置Dict
storage.rootStandalone Instance本地存储的根目录。通常情况下,当home目录空间不足,手工把数据文件移动到其他位置时,可以修改该字段String~/.starwhale
versionconfig.yaml的版本,目前仅支持2.0String2.0

Standalone Instance 的文件存储结构

${storage.root} 目录中存储了 Standalone Instance 所有的用户数据,包括 Project、Runtime、Model、Dataset、Evaluation 等用户直接感知的数据,也包括 ObjectStore、DataStore 等 Starwhale 后台实现的存储。具体说明如下:

+-- ${storage.root}
| +-- .objectstore --> 存储数据集chunk文件的简单存储,使用blake2b hash算法
| | +-- blake2b --> hash算法名称
| | | +-- 00 --> hash2位前缀
| | | | +-- 0019ad58... --> object文件,文件名是文件内容的hash值
| | | +-- 05
| +-- .datastore --> 基于pyarrow的列式存储
| | +-- project
| | | +-- self --> 按照project名称进行分类存储
| | | | +-- dataset --> 数据集相关的datastore存储,一般用来存储数据集的索引信息
| | | | +-- eval --> 模型评测结果存储
| +-- .recover --> 软删除某个project的存储目录,可以用 `swcli project recover` 进行恢复
| +-- .tmp --> Dataset/Model/Runtime 构建过程中临时目录
| +-- myproject --> 用户创建的project,所有myproject信息都存储在该目录
| +-- self --> Standalone Instance自动创建的project
| | +-- dataset --> swds数据集存储目录
| | +-- evaluation --> 模型评测配置文件、日志等存储目录
| | +-- model --> swmp模型包存储目录
| | +-- runtime --> swrt环境包存储目录
| | +-- workdir --> 解压、复原包文件的目录
| | | +-- model --> swmp解压后的目录
| | | +-- runtime --> swrt解压后的目录,若进行runtime restore操作,生成的venv或conda隔离环境,也会存放在该目录中

有时候您可能需要用到 starwhale.Link 来存储一些信息。理论上,Link里面的URI可以是任意的合法 URI(星鲸目前只支持S3协议族和HTTP),比如s3://10.131.0.1:9000/users/path。然而,有些 Link是需要鉴权才能访问的。 link_auths 就是用来存放这些鉴权信息的。

link_auths:
- type: s3
ak: starwhale
bucket: users
region: local
connect_timeout: 10.0
endpoint: http://10.131.0.1:9000
read_timeout: 100.0
sk: starwhale

link_auths 里面的每一条都会自动匹配您的URI。 目前 S3 类型的鉴权信息通过 bucketendpoint 来匹配 URI。