在修改一个比较复杂的库,例如transformers时,修改了库中内容,但苦于不知道该如何为库创建一个接口时,可以尝试以下方法

设置不同环境变量:

export MODE=defualt, reverse, hybrid...

代码中获取环境变量:

mode = os.getenv("MODE", "default") ## 提取不到就默认default

接下来:

if mode == "default":
	query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin)

elif mode == "reverse":
	query_states, key_states = apply_reverse_position_emb(query_states, key_states, cos, sin, length = len(position_ids[0]))

elif mode == "hybrid":
	query_states, key_states = apply_hybrid_position_emb(query_states, key_states, cos, sin, length = len(position_ids[0]))

检验:

echo $MODE