27 KiB
27 KiB
config files
tmux
bind-key b send-prefix
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
set -g status-right ""
unbind '%'
bind '|' split-window -h -c "#{pane_current_path}"
unbind '"'
bind '-' split-window -v -c "#{pane_current_path}"
bind -r m resize-pane -Z
set -g base-index 1
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection
unbind -T copy-mode-vi MouseDragEnd1Pane
.bashrc
# export HOME=/mnt/debugger/wjh
[ -z "$PS1" ] && return
export TERM=xterm-256color
if [ -f ~/.dircolors ]; then
eval "$(dircolors -b ~/.dircolors)"
else
eval "$(dircolors -b)"
fi
alias ls='ls --color=auto -F'
alias ll='ls -lh --color=auto'
alias la='ll -a'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -h'
export PS1='\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\$ '
HISTSIZE=10000
HISTFILESIZE=20000
shopt -s histappend
export HISTCONTROL=ignoredups:erasedups
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
unset color_prompt force_color_prompt
use() {
source /mnt/debugger/wjh/.venv/$1/bin/activate
}
proxyOn() {
p="http://ipads:ipads123@127.0.0.1:11235"
export http_proxy=$p https_proxy=$p all_proxy=$p
}
proxyOff() {
unset http_proxy https_proxy all_proxy
}
create user
#!/bin/bash
# 使用方法: sudo ./create_user.sh <用户名> <密码> <home目录路径>
# 检查是否以root权限运行
if [ "$(id -u)" != "0" ]; then
echo "此脚本必须以root权限运行。请使用sudo执行。" 1>&2
exit 1
fi
# 检查参数数量
if [ $# -lt 3 ]; then
echo "错误: 需要提供至少三个参数 - 用户名、密码和home目录路径"
echo "用法: $0 <用户名> <密码> <home目录路径> [<uid>]"
exit 1
fi
USERNAME=$1
PASSWORD=$2
HOME_DIR=$3
USER_ID=$4
# 创建用户并指定home目录
useradd -m -d "$HOME_DIR" -s /bin/bash "$USERNAME" -u $USER_ID
echo "用户 $USERNAME 已创建,home目录为 $HOME_DIR"
# 设置用户密码
echo "$USERNAME:$PASSWORD" | chpasswd
echo "用户 $USERNAME 的密码已设置"
# 赋予sudo权限 (适用于Ubuntu/Debian系统)
usermod -aG sudo "$USERNAME"
echo "用户 $USERNAME 已添加到sudo组,拥有管理员权限"
# 对于CentOS/RHEL系统,应使用以下命令代替上面的命令
# usermod -aG wheel "$USERNAME"
echo "用户创建完成!可以使用以下命令验证:"
echo "su - $USERNAME"
echo "sudo -l"
AIBank
申请理由:
服务百炼在线模型推理任务,缩短推理服务的 TTFT 与 TPOT,节省推理资源。
1. 基于 vLLM 测试 MoE 的 expert 负载不均衡特性
2. 优化 vLLM 的 MoE 部分的性能
3. 测试 MoE 的性能,分析 MoE 部分的提升效果
服务百炼在线模型推理任务,实现动态的模型资源池切换,节省推理资源。
1. 在异构硬件(H20、H800、5090 等)上测试 vLLM serve 不同模型(30B、235B 等)的性能并分析
2. 依据性能分析结果,在异构硬件上做模型推理的服务配置调优,让任一模型在任一硬件上能够得到最优的推理配置
3. 为异构资源池上模型流量的切换与动态调整做指导,为不同模型在给定流量需求下分配最优的硬件资源池,让不同模型的总资源需求量尽可能减少,从而优化整体的资源利用率
setup
curl -LsSf https://astral.sh/uv/install.sh | sh
IdentityFile ~/.ssh/gahow_main
ServerAliveInterval 180
ServerAliveCountMax 3
Host ali
HostName 47.83.188.3
User gahow
ssh -f -N -D 1080 ali
curl --socks5 127.0.0.1:1080 https://ifconfig.me
export SSL_CERT_FILE=$(python -m certifi)
curl http://ipinfo.io
cd "$HOME/.vscode-server/extensions/openai.chatgpt-0.4.15/bin/linux-x86_64"
# keep the original
mv codex codex.real
# wrapper that forces a proxy and then calls the original
cat > codex <<'EOF'
#!/usr/bin/env bash
export HTTPS_PROXY="http://localhost:7890"
export HTTP_PROXY="http://localhost:7890"
export NO_PROXY="http://localhost:7890"
# ------------------------------------------------
HERE="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
exec "$HERE/codex.real" "$@"
EOF
chmod +x codex
networksetup -setv6off Wi-Fi
curl ipinfo.io
<html><body><p align="center"><a href="http://portal.wifi.alibaba-inc.com/loginPage-custom?random=c9ca5299-e5cf-4750-8a97-93010063568b&ap_mac=40%3A1A%3A58%3A2A%3A81%3A70&sign_method=hmac_sha256&ssid=alibaba-guest&sta_mac=9A%3A89%3A66%3ABB%3A08%3A5A×tamp=1761019558780&version=1.0&sign=5C396F5000AA6AF0CCC4EE9C0BC0F95B68E208D9522F23CA97AC3FA4AE56C8CF">如果浏览器不能自动跳转,请点击这里.</a><br><a href="http://portal.wifi.alibaba-inc.com/loginPage-custom?random=c9ca5299-e5cf-4750-8a97-93010063568b&ap_mac=40%3A1A%3A58%3A2A%3A81%3A70&sign_method=hmac_sha256&ssid=alibaba-guest&sta_mac=9A%3A89%3A66%3ABB%3A08%3A5A×tamp=1761019558780&version=1.0&sign=5C396F5000AA6AF0CCC4EE9C0BC0F95B68E208D9522F23CA97AC3FA4AE56C8CF">If the browser cannot be redirected automatically, please click here.</a></body></html>
pmset -g
sudo pmset -a sleep 0
sudo pmset -a disablesleep 1
sudo pmset -a disablesleep 0
sudo pmset -a sleep 10
pmset displaysleepnow
sudo apt install rclone
rclone config
rclone lsf mydav:
rclone mkdir mydav:/newfoler/xx
rclone copy /path/to/file mydav:/folder/
rclone sync /path/to/localdir mydav:/folder
Dash vllm
unset VLLM_CACHE_ROOT
{
"memory_cache": "100G",
"rdma": "1",
"enable-nvidia-ibgda": "true",
"enable-nvidia-gdrcopy": "true",
"global_dynamic_batching": {
"enabled": true,
"scheduler_type": "cache-aware-batching",
"scheduler_config": {
"max_batch_size": 128,
"max_token_num": 1000000,
"request_seize_threshold": 20,
"prefix_match_weight": 10,
"load_weight": 20,
"prefill_concurrency": 2,
"long_context": {
"long_context_threshold": 30000,
"long_context_proportion": 0.1,
"max_long_context_proportion": 0.3
},
"enable_global_batching_optimization": true
},
"request_transmission": "grpc",
"response_transmission": "grpc",
"preferred_batch_size": 0,
"token_capacity": 0,
"max_queue_delay": 100,
"bucket_strategy": "",
"bucket_count": 1,
"bucket_thresholds": []
},
"turbo": {
"env": {
"DashScope_Service_GracefulShutdown_WaitSeconds": 300,
"DashScope_Api_Cache_Aware_EnableLengthIsolated": true
}
},
"termination_grace_period": 300
}
Trace
Some Observations
- 很多请求在 tool call 之后,携带 tool response 的 content 作为 input
<|im_start|>system\n{user_sys}{bailian_sys_prompt}<|im_end|>
<|im_start|>user\n{user_content}<|im_end|>
<|im_start|>assistant\n<think><|im_end|>
<|im_start|>user\n<tool_response>\n{tool_content}<\tool_response><|im_end|>
- thinking 下 input_length < 8k,但 input_length + output_length > 8k 的占比不小,多轮对话少(因为只从一个 cluster 内采集)
thinking: cnt=1845, cnt / len(data)=0.16394170961435933
coder: cnt=1871, cnt / len(data)=0.012262580450654747
字段:
- thinking
__tag__:__hostname__
__tag__:__pack_id__
__tag__:__path__
__tag__:__receive_time__
__tag__:__service_name__
__tag__:__user_defined_id__
__tag__:_container_ip_
__tag__:_container_name_
__tag__:_image_name_
__tag__:_namespace_
__tag__:_pod_name_
__tag__:_pod_uid_
__tag__:eci_id
__time__
__topic__
cluster_name
cluster_type
data_name
data_type
data_version
env
framework_type
framework_version
ip
model_name
model_version
program_name
program_version
region
request_count
request_data_size
request_data_url
request_id
request_params
request_params.header
request_params.header.attributes
request_params.header.attributes.app_id
request_params.header.attributes.baggage
request_params.header.attributes.model
request_params.header.attributes.subuser_id
request_params.header.attributes.traceparent
request_params.header.attributes.traceparent_new
request_params.header.attributes.tracestate
request_params.header.attributes.user_id
request_params.header.attributes.workspace_id
request_params.header.attributes.x-dashscope-apikeyid
request_params.header.attributes.x-dashscope-apikeyloc
request_params.header.attributes.x-dashscope-app
request_params.header.attributes.x-dashscope-bwid
request_params.header.attributes.x-dashscope-inner-enableestimatedusage
request_params.header.attributes.x-dashscope-inner-flow-control
request_params.header.attributes.x-dashscope-inner-logging-policy
request_params.header.attributes.x-dashscope-inner-model-type
request_params.header.attributes.x-dashscope-inner-request-priority
request_params.header.attributes.x-dashscope-inner-requestreadytime
request_params.header.attributes.x-dashscope-inner-streammode
request_params.header.attributes.x-dashscope-inner-timeout
request_params.header.attributes.x-dashscope-inner-user-meta
request_params.header.attributes.x-dashscope-inner-user-meta.dashscope_connector_user_type
request_params.header.attributes.x-dashscope-requestid
request_params.header.attributes.x-dashscope-service
request_params.header.attributes.x-dashscope-sse
request_params.header.attributes.x-dashscope-subuid
request_params.header.attributes.x-dashscope-uid
request_params.header.attributes.x-dashscope-workspace
request_params.header.attributes.x-ds-request-priority
request_params.header.attributes.x-ds-virtual-service
request_params.header.attributes.x-ds-virtual-service-version
request_params.header.request_id
request_params.payload
request_params.payload.input
request_params.payload.input.messages
request_params.payload.input.messages.content
request_params.payload.input.messages.name
request_params.payload.input.messages.reasoning_content
request_params.payload.input.messages.role
request_params.payload.input.messages.tool_call_id
request_params.payload.input.messages.tool_calls
request_params.payload.input.messages.tool_calls.function
request_params.payload.input.messages.tool_calls.function.arguments
request_params.payload.input.messages.tool_calls.function.arguments.code
request_params.payload.input.messages.tool_calls.function.name
request_params.payload.input.messages.tool_calls.id
request_params.payload.input.messages.tool_calls.index
request_params.payload.input.messages.tool_calls.type
request_params.payload.parameters
request_params.payload.parameters.enable_thinking
request_params.payload.parameters.extra_body
request_params.payload.parameters.extra_body.ignore_datainspection_error
request_params.payload.parameters.ignore_datainspection_error
request_params.payload.parameters.incremental_output
request_params.payload.parameters.max_tokens
request_params.payload.parameters.presence_penalty
request_params.payload.parameters.result_format
request_params.payload.parameters.temperature
request_params.payload.parameters.tools
request_params.payload.parameters.tools.function
request_params.payload.parameters.tools.function.description
request_params.payload.parameters.tools.function.name
request_params.payload.parameters.tools.function.parameters
request_params.payload.parameters.tools.function.parameters.properties
request_params.payload.parameters.tools.function.parameters.properties.code
request_params.payload.parameters.tools.function.parameters.properties.code.description
request_params.payload.parameters.tools.function.parameters.properties.code.type
request_params.payload.parameters.tools.function.parameters.properties.query
request_params.payload.parameters.tools.function.parameters.properties.query.description
request_params.payload.parameters.tools.function.parameters.properties.query.type
request_params.payload.parameters.tools.function.parameters.properties.url
request_params.payload.parameters.tools.function.parameters.properties.url.description
request_params.payload.parameters.tools.function.parameters.properties.url.type
request_params.payload.parameters.tools.function.parameters.required
request_params.payload.parameters.tools.function.parameters.type
request_params.payload.parameters.tools.type
request_params.payload.parameters.top_p
request_params.payload.resources
response_count
response_data_size
response_params
response_params.header
response_params.header.attributes
response_params.header.attributes.request_uuid
response_params.header.attributes.x-ds-backend-first-request-time
response_params.header.attributes.x-ds-backend-first-response-time
response_params.header.finished
response_params.header.request_id
response_params.header.status_code
response_params.header.status_message
response_params.header.status_name
response_params.payload
response_params.payload.output
response_params.payload.output.choices
response_params.payload.output.choices.finish_reason
response_params.payload.output.choices.index
response_params.payload.output.choices.message
response_params.payload.output.choices.message.content
response_params.payload.output.choices.message.reasoning_content
response_params.payload.output.choices.message.role
response_params.payload.output.choices.message.tool_calls
response_params.payload.output.choices.message.tool_calls.function
response_params.payload.output.choices.message.tool_calls.function.arguments
response_params.payload.output.choices.message.tool_calls.function.arguments.code
response_params.payload.output.choices.message.tool_calls.function.name
response_params.payload.output.choices.message.tool_calls.id
response_params.payload.output.choices.message.tool_calls.index
response_params.payload.output.choices.message.tool_calls.type
response_params.payload.usage
response_params.payload.usage.cached_tokens
response_params.payload.usage.input_tokens
response_params.payload.usage.output_tokens
response_params.payload.usage.output_tokens_details
response_params.payload.usage.output_tokens_details.reasoning_tokens
response_params.payload.usage.total_tokens
service_group
service_id
service_name
session_error
session_id
status_code
status_message
status_name
time
total_cost_time
__source__
- thinking-info
=== 发现的字段列表 ===
__tag__:__hostname__
__tag__:__pack_id__
__tag__:__path__
__tag__:__receive_time__
__tag__:__service_name__
__tag__:__user_defined_id__
__tag__:_container_ip_
__tag__:_container_name_
__tag__:_image_name_
__tag__:_namespace_
__tag__:_pod_name_
__tag__:_pod_uid_
__tag__:eci_id
__time__
__topic__
chunk_index
context
context.extra_params
context.extra_params.baggage
context.extra_params.cache_control
context.extra_params.ds_header_attributes
context.extra_params.ds_header_attributes.X-DashScope-APP-EXTRA-INFO
context.extra_params.ds_header_attributes.X-DashScope-EUID
context.extra_params.ds_header_attributes.X-DashScope-Inner-StreamMode
context.extra_params.ds_header_attributes.X-DashScope-Inner-Timeout
context.extra_params.ds_header_attributes.app_id
context.extra_params.ds_header_attributes.baggage
context.extra_params.ds_header_attributes.model
context.extra_params.ds_header_attributes.model_service_id
context.extra_params.ds_header_attributes.subuser_id
context.extra_params.ds_header_attributes.traceparent
context.extra_params.ds_header_attributes.traceparent_new
context.extra_params.ds_header_attributes.tracestate
context.extra_params.ds_header_attributes.user_id
context.extra_params.ds_header_attributes.workspace_id
context.extra_params.ds_header_attributes.x-dashscope-apikeyid
context.extra_params.ds_header_attributes.x-dashscope-apikeyloc
context.extra_params.ds_header_attributes.x-dashscope-app
context.extra_params.ds_header_attributes.x-dashscope-app-extra-info
context.extra_params.ds_header_attributes.x-dashscope-avgtpsrequestsnum
context.extra_params.ds_header_attributes.x-dashscope-bwid
context.extra_params.ds_header_attributes.x-dashscope-datainspection
context.extra_params.ds_header_attributes.x-dashscope-euid
context.extra_params.ds_header_attributes.x-dashscope-inner-batch-id
context.extra_params.ds_header_attributes.x-dashscope-inner-enableestimatedusage
context.extra_params.ds_header_attributes.x-dashscope-inner-flow-control
context.extra_params.ds_header_attributes.x-dashscope-inner-logging-policy
context.extra_params.ds_header_attributes.x-dashscope-inner-model-type
context.extra_params.ds_header_attributes.x-dashscope-inner-request-priority
context.extra_params.ds_header_attributes.x-dashscope-inner-requestreadytime
context.extra_params.ds_header_attributes.x-dashscope-inner-streammode
context.extra_params.ds_header_attributes.x-dashscope-inner-timeout
context.extra_params.ds_header_attributes.x-dashscope-inner-timeout-heartbeat-interval
context.extra_params.ds_header_attributes.x-dashscope-inner-user-meta
context.extra_params.ds_header_attributes.x-dashscope-inner-user-meta.dashscope_connector_user_type
context.extra_params.ds_header_attributes.x-dashscope-loggingconsent
context.extra_params.ds_header_attributes.x-dashscope-requestid
context.extra_params.ds_header_attributes.x-dashscope-service
context.extra_params.ds_header_attributes.x-dashscope-sse
context.extra_params.ds_header_attributes.x-dashscope-subuid
context.extra_params.ds_header_attributes.x-dashscope-uid
context.extra_params.ds_header_attributes.x-dashscope-workspace
context.extra_params.ds_header_attributes.x-dashscope-workspaceid
context.extra_params.ds_header_attributes.x-ds-llm-input-tokens
context.extra_params.ds_header_attributes.x-ds-llm-response-format
context.extra_params.ds_header_attributes.x-ds-llm-thinking
context.extra_params.ds_header_attributes.x-ds-request-priority
context.extra_params.ds_header_attributes.x-ds-virtual-service
context.extra_params.ds_header_attributes.x-ds-virtual-service-version
context.extra_params.incremental_output
context.extra_params.service_id
context.extra_params.stop
context.extra_params.stop_token_ids
context.extra_params.traceparent
context.extra_params.tracestate
context.input_text
context.model_serving_params
context.model_serving_params.do_sample
context.model_serving_params.early_stopping
context.model_serving_params.eos_token_id
context.model_serving_params.head_response_per_tokens
context.model_serving_params.input_ids
context.model_serving_params.length_penalty
context.model_serving_params.logprobs
context.model_serving_params.max_new_think_tokens
context.model_serving_params.max_new_tokens
context.model_serving_params.min_length
context.model_serving_params.n
context.model_serving_params.no_repeat_ngram_size
context.model_serving_params.num_beams
context.model_serving_params.presence_penalty
context.model_serving_params.repetition_penalty
context.model_serving_params.seed
context.model_serving_params.temperature
context.model_serving_params.top_k
context.model_serving_params.top_logprobs
context.model_serving_params.top_p
ds_service_id
ds_service_name
interval
interval.cost
interval.type
message
request_id
step
time
timestamp
total_chunks
user_id
__source__
- coder
===== Chat Session Analysis (FAST) =====
Mode: strict
Total requests: 151817
Total sessions: 75146
Mean turns per session: 2.020
===== Turn Distribution =====
turns= 1 sessions=65024
turns= 2 sessions=3367
turns= 3 sessions=1814
turns= 4 sessions=997
turns= 5 sessions=725
turns= 6 sessions=487
turns= 7 sessions=334
turns= 8 sessions=262
turns= 9 sessions=198
turns= 10 sessions=164
turns= 11 sessions=148
turns= 12 sessions=132
turns= 13 sessions=81
turns= 14 sessions=70
turns= 15 sessions=78
turns= 16 sessions=62
turns= 17 sessions=72
turns= 18 sessions=67
turns= 19 sessions=55
turns= 20 sessions=52
turns= 21 sessions=35
turns= 22 sessions=51
turns= 23 sessions=40
turns= 24 sessions=37
turns= 25 sessions=42
turns= 26 sessions=28
turns= 27 sessions=28
turns= 28 sessions=28
turns= 29 sessions=22
turns= 30 sessions=24
turns= 31 sessions=31
turns= 32 sessions=17
turns= 33 sessions=23
turns= 34 sessions=11
turns= 35 sessions=15
turns= 36 sessions=23
turns= 37 sessions=12
turns= 38 sessions=11
turns= 39 sessions=20
turns= 40 sessions=18
turns= 41 sessions=10
turns= 42 sessions=20
turns= 43 sessions=19
turns= 44 sessions=21
turns= 45 sessions=19
turns= 46 sessions=11
turns= 47 sessions=7
turns= 48 sessions=12
turns= 49 sessions=13
turns= 50 sessions=6
turns= 51 sessions=8
turns= 52 sessions=6
turns= 53 sessions=13
turns= 54 sessions=14
turns= 55 sessions=7
turns= 56 sessions=12
turns= 57 sessions=12
turns= 58 sessions=10
turns= 59 sessions=4
turns= 60 sessions=3
turns= 61 sessions=11
turns= 62 sessions=5
turns= 63 sessions=4
turns= 64 sessions=6
turns= 65 sessions=6
turns= 66 sessions=6
turns= 67 sessions=6
turns= 68 sessions=7
turns= 69 sessions=3
turns= 70 sessions=7
turns= 71 sessions=5
turns= 72 sessions=9
turns= 73 sessions=3
turns= 74 sessions=9
turns= 75 sessions=8
turns= 76 sessions=2
turns= 77 sessions=3
turns= 78 sessions=2
turns= 79 sessions=3
turns= 80 sessions=4
turns= 81 sessions=3
turns= 82 sessions=3
turns= 83 sessions=6
turns= 84 sessions=2
turns= 85 sessions=5
turns= 86 sessions=6
turns= 87 sessions=6
turns= 88 sessions=1
turns= 89 sessions=3
turns= 91 sessions=4
turns= 92 sessions=3
turns= 93 sessions=4
turns= 94 sessions=2
turns= 96 sessions=2
turns= 97 sessions=3
turns= 98 sessions=2
turns= 99 sessions=4
turns=100 sessions=4
turns=101 sessions=2
turns=102 sessions=3
turns=103 sessions=2
turns=106 sessions=2
turns=107 sessions=1
turns=110 sessions=2
turns=112 sessions=3
turns=113 sessions=1
turns=116 sessions=1
turns=117 sessions=1
turns=118 sessions=1
turns=119 sessions=1
turns=120 sessions=1
turns=121 sessions=2
turns=122 sessions=2
turns=125 sessions=1
turns=126 sessions=1
turns=128 sessions=2
turns=132 sessions=1
turns=134 sessions=1
turns=136 sessions=1
turns=137 sessions=1
turns=142 sessions=1
turns=144 sessions=1
turns=156 sessions=2
turns=157 sessions=1
turns=160 sessions=2
turns=185 sessions=1
turns=220 sessions=1
===== Chat Session Analysis (FAST) =====
Mode: strict
Total requests: 10913
Total sessions: 10605
Mean turns per session: 1.029
===== Turn Distribution =====
turns= 1 sessions=10474
turns= 2 sessions=69
turns= 3 sessions=25
turns= 4 sessions=17
turns= 5 sessions=9
turns= 6 sessions=2
turns= 7 sessions=1
turns= 8 sessions=1
turns= 9 sessions=2
turns= 12 sessions=2
turns= 13 sessions=1
turns= 14 sessions=1
turns= 17 sessions=1
- Thinking V2
===== Chat Session Analysis (FAST) =====
Mode: strict
Total requests: 10913
Total sessions: 9611
Mean turns per session: 1.135
===== Turn Distribution =====
turns= 1 sessions=9083
turns= 2 sessions=263
turns= 3 sessions=101
turns= 4 sessions=49
turns= 5 sessions=39
turns= 6 sessions=35
turns= 7 sessions=14
turns= 8 sessions=8
turns= 9 sessions=6
turns= 10 sessions=3
turns= 11 sessions=3
turns= 12 sessions=2
turns= 14 sessions=2
turns= 15 sessions=1
turns= 18 sessions=1
turns= 36 sessions=1
- Coder V2
turns= 1 sessions=106901
turns= 2 sessions=3770
turns= 3 sessions=1897
turns= 4 sessions=925
turns= 5 sessions=668
turns= 6 sessions=417
turns= 7 sessions=270
turns= 8 sessions=216
turns= 9 sessions=142
turns= 10 sessions=116
turns= 11 sessions=95
turns= 12 sessions=86
turns= 13 sessions=54
turns= 14 sessions=45
turns= 15 sessions=53
turns= 16 sessions=32
turns= 17 sessions=35
turns= 18 sessions=31
turns= 19 sessions=23
turns= 20 sessions=22
turns= 21 sessions=14
turns= 22 sessions=25
turns= 23 sessions=22
turns= 24 sessions=16
turns= 25 sessions=16
turns= 26 sessions=13
turns= 27 sessions=11
turns= 28 sessions=9
turns= 29 sessions=13
turns= 30 sessions=8
turns= 31 sessions=6
turns= 32 sessions=2
turns= 33 sessions=3
turns= 34 sessions=7
turns= 35 sessions=5
turns= 36 sessions=4
turns= 37 sessions=4
turns= 38 sessions=3
turns= 39 sessions=8
turns= 40 sessions=6
turns= 41 sessions=3
turns= 42 sessions=6
turns= 43 sessions=3
turns= 44 sessions=3
turns= 45 sessions=4
turns= 46 sessions=1
turns= 48 sessions=3
turns= 49 sessions=4
turns= 50 sessions=1
turns= 51 sessions=2
turns= 52 sessions=3
turns= 53 sessions=1
turns= 54 sessions=4
turns= 55 sessions=5
turns= 56 sessions=2
turns= 57 sessions=1
turns= 58 sessions=1
turns= 59 sessions=1
turns= 60 sessions=2
turns= 61 sessions=1
turns= 62 sessions=3
turns= 66 sessions=1
turns= 68 sessions=1
turns= 69 sessions=3
turns= 70 sessions=1
turns= 71 sessions=1
turns= 72 sessions=1
turns= 73 sessions=1
turns= 80 sessions=1
turns= 81 sessions=1
turns= 85 sessions=1
turns= 98 sessions=1
turns=100 sessions=1
turns=102 sessions=1
turns=103 sessions=1
Dashscope
mkdir -p ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFFpGJiuu2lGzQd1cmqSYBAO5sL0gc3+RSQKm9IbMUte Gahow Wang <gahow.wang@gmail.com>" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
echo "Port 10022" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
if [[ -z "$(which service 2>/dev/null)" ]]; then /usr/sbin/sshd; else service ssh restart; fi
sudo apt update && sudo apt install --no-install-recommends nodejs npm -y
sudo npm i -g @openai/codex
sudo rm /usr/lib/python3.12/sitecustomize.py
echo "IdentityFile ~/.ssh/gahow_main" >> ~/.ssh/config
echo "sk" > ~/.ssh/gahow_main
chmod 600 gahow_main
proxyOn() {
p="http://127.0.0.1:7890"
export http_proxy=$p https_proxy=$p all_proxy=$p
}
proxyOff() {
unset http_proxy https_proxy all_proxy
}
>> ~/.bashrc
git lfs install
git clone git@ipads.se.sjtu.edu.cn:wangjh/auto-tuner.git
git checkout feat/agent
git submodule update --init
curl -LsSf https://astral.sh/uv/install.sh | sh
export UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple
uv sync
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install ripgrep
./build_replayer.sh
- copy file
#!/usr/bin/env bash
set -u
set -o pipefail
HOST="29cb1b48db8-cdu78.cn-wulanchabu.nas.aliyuncs.com"
SRC_ROOT="nfs://${HOST}/wjh"
DST_ROOT="/dashscope/caches/application/wjh"
PARALLEL=256
RETRY=3
mkdir -p "${DST_ROOT}"
tmp_root=$(mktemp)
tmp_auto=$(mktemp)
tmp_dotdirs=$(mktemp)
trap 'rm -f "$tmp_root" "$tmp_auto" "$tmp_dotdirs"' EXIT
copy_one() {
rel="$1"
src="nfs://${HOST}/wjh/${rel}"
dst="${DST_ROOT}/${rel}"
# ---- resume support ----
if [ -f "$dst" ]; then
echo "[SKIP] already exists $rel"
return 0
fi
mkdir -p "$(dirname "$dst")"
i=1
while [ "$i" -le "$RETRY" ]; do
echo "[COPY] ${rel} (try $i/$RETRY)"
if nfs-cat "$src" > "${dst}.tmp"; then
mv "${dst}.tmp" "$dst"
return 0
fi
rm -f "${dst}.tmp"
i=$((i+1))
sleep 1
done
echo "[FAIL] ${rel}" >&2
}
export HOST DST_ROOT RETRY
export -f copy_one
echo "===== Step 1: root regular files ====="
nfs-ls "${SRC_ROOT}" \
| awk '$1 ~ /^-/ {print $NF}' \
| grep -Ev '\.venv|\.cache' \
> "$tmp_root"
echo "===== Step 2: auto-tuner recursive ====="
nfs-ls -R "${SRC_ROOT}/auto-tuner" \
| awk '$1 ~ /^-/ {print "auto-tuner/" $NF}' \
| grep -Ev '\.venv|\.cache' \
> "$tmp_auto"
echo "===== Step 3: dot directories ====="
nfs-ls "${SRC_ROOT}" \
| awk '$1 ~ /^d/ && $NF ~ /^\./ {print $NF}' \
| grep -Ev '\.venv|\.cache' \
> "$tmp_dotdirs"
echo "===== Step 4: scan dot dirs ====="
while read d
do
echo "[DOTDIR] $d"
nfs-ls -R "${SRC_ROOT}/${d}" \
| awk -v p="$d/" '$1 ~ /^-/ {print p $NF}' \
| grep -Ev '\.venv|\.cache'
done < "$tmp_dotdirs" >> "$tmp_auto"
echo "===== Step 5: copy ====="
cat "$tmp_root" "$tmp_auto" \
| awk '!seen[$0]++' \
| xargs -P "$PARALLEL" -I {} bash -c 'copy_one "$1"' _ {}
echo "===== DONE ====="