feat: add docs to main (#1559)
This commit is contained in:
320
docs/developer/develop/package/recommend.md
Normal file
320
docs/developer/develop/package/recommend.md
Normal file
@@ -0,0 +1,320 @@
|
||||
# Configuration Guideline for Recommend
|
||||
|
||||
When creating an application chart for `recommend`, you'll primarily need to configure the four files located in the `templates/` folder: `embedding.yaml`, `prerank.yaml`, `rank.yaml`, `train.yaml`.
|
||||
|
||||
|
||||
## embedding.yaml
|
||||
|
||||
::: details embedding.yaml Example
|
||||
|
||||
```Yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: CronWorkflow
|
||||
metadata:
|
||||
name: user-embedding-r4sport
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
schedule: '0 */1 * * *'
|
||||
startingDeadlineSeconds: 0
|
||||
concurrencyPolicy: Replace
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
suspend: false
|
||||
ttlStrategy:
|
||||
secondsAfterSuccess: 3600
|
||||
secondsAfterCompletion: 3600
|
||||
secondsAfterFailure: 3600
|
||||
workflowSpec:
|
||||
entrypoint: userEmbeddingFlow
|
||||
volumes:
|
||||
- name: huggingface
|
||||
hostPath:
|
||||
type: DirectoryOrCreate
|
||||
path: >-
|
||||
{{ .Values.userspace.appData }}/rss/model/huggingface
|
||||
templates:
|
||||
- name: userEmbeddingFlow
|
||||
steps:
|
||||
- - name: user-embedding
|
||||
template: user-embedding-template
|
||||
- name: user-embedding-template
|
||||
container:
|
||||
image: 'beclab/r4userembedding'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
volumeMounts:
|
||||
- mountPath: /root/.cache/huggingface
|
||||
name: huggingface
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### Field Description
|
||||
|
|
||||
| Field | Description |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| apiVersion | The API version in use. |
|
||||
| kind | Defines a CronWorkflow object. |
|
||||
| metadata.name | The name of the CronWorkflow. |
|
||||
| metadata.namespace | The namespace that the CronWorkflow belongs to. |
|
||||
| spec.schedule | Cron expression, defines the scheduling time of the CronWorkflow. |
|
||||
| spec.startingDeadlineSeconds | The start deadline of the CronWorkflow, represents the maximum delay time from the scheduled time. |
|
||||
| spec.concurrencyPolicy | Concurrency policy, specifies how to handle the currently running job when the next schedule time of the CronWorkflow arrives. |
|
||||
| spec.successfulJobsHistoryLimit | The limit of the successful job history record. |
|
||||
| spec.failedJobsHistoryLimit | The limit of the failed job history record. |
|
||||
| spec.suspend | Indicates whether to suspend the operation of the CronWorkflow. |
|
||||
| spec.ttlStrategy.secondsAfterSuccess | The time to live after the successful job is completed, in seconds. |
|
||||
| spec.ttlStrategy.secondsAfterCompletion | The time to live after the job is completed, in seconds. |
|
||||
| spec.ttlStrategy.secondsAfterFailure | The time to live after the failed job is completed, in seconds. |
|
||||
| spec.workflowSpec.entrypoint | The entry point of the Workflow. |
|
||||
| spec.workflowSpec.volumes[0].name | The definition of the volume, the name is huggingface. |
|
||||
| spec.workflowSpec.volumes[0].hostPath.type | The host machine path type, specified as a directory or create a directory. |
|
||||
| spec.workflowSpec.volumes[0].hostPath.path | The path of the host machine. |
|
||||
| spec.workflowSpec.templates[0].name | The name of the Workflow template. |
|
||||
| spec.workflowSpec.templates[0].steps[0][0].name | The definition of the step, its name. |
|
||||
| spec.workflowSpec.templates[0].steps[0][0].template | The name of the referenced template. |
|
||||
| spec.workflowSpec.templates[1].name | The name of the template. |
|
||||
| spec.workflowSpec.templates[1].container.image | The image name of the container. |
|
||||
| spec.workflowSpec.templates[1].container.imagePullPolicy | The image pull policy. |
|
||||
| spec.workflowSpec.templates[1].container.env[0].name | The definition of the environment variable, its name. |
|
||||
| spec.workflowSpec.templates[1].container.env[0].value | The value of the environment variable. |
|
||||
| spec.workflowSpec.templates[1].container.env[1].name | The definition of the environment variable, its name. |
|
||||
| spec.workflowSpec.templates[1].container.env[1].value | The value of the environment variable. |
|
||||
| spec.workflowSpec.templates[1].container.volumeMounts[0].mountPath | The definition of the mount path. |
|
||||
| spec.workflowSpec.templates[1].container.volumeMounts[0].name | The name of the mounted volume. |
|
||||
|
||||
## prerank.yaml
|
||||
|
||||
::: details prerank.yaml Example
|
||||
|
||||
```Yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: CronWorkflow
|
||||
metadata:
|
||||
name: prerank-r4sport
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
schedule: '*/5 * * * *'
|
||||
startingDeadlineSeconds: 0
|
||||
concurrencyPolicy: Replace
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
suspend: false
|
||||
ttlStrategy:
|
||||
secondsAfterSuccess: 3600
|
||||
secondsAfterCompletion: 3600
|
||||
secondsAfterFailure: 3600
|
||||
workflowSpec:
|
||||
entrypoint: algorithm
|
||||
volumes:
|
||||
- name: nfs
|
||||
hostPath:
|
||||
type: DirectoryOrCreate
|
||||
path: >-
|
||||
{{ .Values.userspace.appData }}/rss/data
|
||||
- name: juicefs
|
||||
hostPath:
|
||||
type: DirectoryOrCreate
|
||||
path: >-
|
||||
{{ .Values.userspace.appData }}/rss/data
|
||||
templates:
|
||||
- name: algorithm
|
||||
steps:
|
||||
- - name: recall
|
||||
template: recall-template
|
||||
- - name: prerank
|
||||
template: prerank-template
|
||||
- name: recall-template
|
||||
container:
|
||||
image: 'beclab/r4recall:v0.0.5'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: NFS_ROOT_DIRECTORY
|
||||
value: /nfs
|
||||
- name: JUICEFS_ROOT_DIRECTORY
|
||||
value: /juicefs
|
||||
- name: ALGORITHM_FILE_CONFIG_PATH
|
||||
value: /usr/config/
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
- name: SUPPORT_LANGUAGE
|
||||
value: en
|
||||
- name: SUPPORT_TIMELINESS
|
||||
value: '0'
|
||||
- name: SYNC_PROVIDER
|
||||
value: bytetrade
|
||||
- name: SYNC_FEED_NAME
|
||||
value: sport
|
||||
- name: SYNC_MODEL_NAME
|
||||
value: bert_v2
|
||||
volumeMounts:
|
||||
- mountPath: /nfs
|
||||
name: nfs
|
||||
- mountPath: /juicefs
|
||||
name: juicefs
|
||||
- name: prerank-template
|
||||
container:
|
||||
image: 'beclab/r4prerank:v0.0.5'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: NFS_ROOT_DIRECTORY
|
||||
value: /nfs
|
||||
- name: JUICEFS_ROOT_DIRECTORY
|
||||
value: /juicefs
|
||||
- name: ALGORITHM_FILE_CONFIG_PATH
|
||||
value: /usr/config/
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
- name: SUPPORT_LANGUAGE
|
||||
value: en
|
||||
- name: SUPPORT_TIMELINESS
|
||||
value: '0'
|
||||
volumeMounts:
|
||||
- mountPath: /nfs
|
||||
name: nfs
|
||||
- mountPath: /juicefs
|
||||
name: juicefs
|
||||
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
|
||||
## rank.yaml
|
||||
|
||||
::: details rank.yaml Example
|
||||
|
||||
```Yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: CronWorkflow
|
||||
metadata:
|
||||
name: rank-r4sport
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
schedule: '*/5 * * * *'
|
||||
startingDeadlineSeconds: 0
|
||||
concurrencyPolicy: Forbid
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
suspend: false
|
||||
ttlStrategy:
|
||||
secondsAfterSuccess: 3600
|
||||
secondsAfterCompletion: 3600
|
||||
secondsAfterFailure: 3600
|
||||
workflowSpec:
|
||||
entrypoint: rankFlow
|
||||
volumes:
|
||||
- name: model
|
||||
hostPath:
|
||||
type: DirectoryOrCreate
|
||||
path: >-
|
||||
{{ .Values.userspace.appData }}/rss/model
|
||||
templates:
|
||||
- name: rankFlow
|
||||
steps:
|
||||
- - name: extractor
|
||||
template: extractor-template
|
||||
- - name: rank
|
||||
template: rank-template
|
||||
- name: extractor-template
|
||||
container:
|
||||
image: 'beclab/r4extractor:v0.0.5'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rank_model
|
||||
name: model
|
||||
- name: rank-template
|
||||
container:
|
||||
image: 'beclab/r4rank'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rank_model
|
||||
name: model
|
||||
|
||||
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
|
||||
## train.yaml
|
||||
|
||||
::: details train.yaml Example
|
||||
|
||||
```Yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: CronWorkflow
|
||||
metadata:
|
||||
name: rank-r4sport
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
schedule: '*/5 * * * *'
|
||||
startingDeadlineSeconds: 0
|
||||
concurrencyPolicy: Forbid
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
suspend: false
|
||||
ttlStrategy:
|
||||
secondsAfterSuccess: 3600
|
||||
secondsAfterCompletion: 3600
|
||||
secondsAfterFailure: 3600
|
||||
workflowSpec:
|
||||
entrypoint: rankFlow
|
||||
volumes:
|
||||
- name: model
|
||||
hostPath:
|
||||
type: DirectoryOrCreate
|
||||
path: >-
|
||||
{{ .Values.userspace.appData }}/rss/model
|
||||
templates:
|
||||
- name: rankFlow
|
||||
steps:
|
||||
- - name: extractor
|
||||
template: extractor-template
|
||||
- - name: rank
|
||||
template: rank-template
|
||||
- name: extractor-template
|
||||
container:
|
||||
image: 'beclab/r4extractor:v0.0.5'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rank_model
|
||||
name: model
|
||||
- name: rank-template
|
||||
container:
|
||||
image: 'beclab/r4rank'
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: KNOWLEDGE_BASE_API_URL
|
||||
value: {{ .Values.apiUrl }}
|
||||
- name: TERMINUS_RECOMMEND_SOURCE_NAME
|
||||
value: r4sport
|
||||
volumeMounts:
|
||||
- mountPath: /opt/rank_model
|
||||
name: model
|
||||
|
||||
```
|
||||
:::
|
||||
Reference in New Issue
Block a user