Your current environment
Nvidia driver version: 535.104.05
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9.0.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 43 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 128
On-line CPU(s) list: 0-127
Vendor ID: AuthenticAMD
Model name: AMD EPYC 7452 32-Core Processor
CPU family: 23
Model: 49
Thread(s) per core: 2
Core(s) per socket: 32
Socket(s): 2
Stepping: 0
Frequency boost enabled: Yes
CPU max MHz: 23500.00000
CPU min MHz: 15000.00000
BogoMIPS: 4699.94
Flags: fpu vme de pse tsc msr pae mce cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq monitor ds_cpl vmx est tm pbe syscalls smep mmxext fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand lahf_lm abm intel_pt xsaveopt xgetbv1 xsaves cba _xsave cmovpe popcnt avx2 fma4 _mm_popcnt_u32 _mm_cmplt_u32 _mm_cmpgt_u32 _mm_comilt_u32 _mm_comigt_u32 _mm_movehl_ps _mm_loadh_pd _mm_loadl_pi _mm_loadh_po _mm_loadw_pd _mm_loadl_ps _mm_loadh_si _mm_loadw_si _mm_storel_pi _mm_storeh_pd _mm_storel_ps _mm_storeh_si _mm_storew_si _mm_streamalign _mm_getcsr _mm_setcsr _mm_getpcid _mm_putcsr _mm_getpattrm _mm_setpattrm _mm_getcrc32 _mm_setcrc32 _mm_getcontext _mm_setcontext _mm_getgloballock _mm
如何使用vllm
spec_decode和repetition_penalty能否一起使用?
4条答案
按热度按时间iszxjhcz1#
是的!
3yhwsihp2#
当使用spec解码时,每次迭代可能会生成多个tokens,如T0、T1、T2。因为在同一个迭代(forward → penalty → sample)中生成的三个tokens相同,所以我认为当vLLM使用重复惩罚策略计算T2的logits时,T0和T1是不确定的,vLLm无法确定T0和T1是否与T2相同,那么如何惩罚T2的logits?
@cadedaniel 请问您能解释一下这个问题吗?或者指出我的理解哪里有误?非常感谢!
kuuvgm7e3#
简短的答案是,计算第一个投机性代币等价于计算
P(x_1|prefix)
,其中 x_1 是第一个投机性代币。对于 x_2,它是P(x_2|prefix+x_1)
,对于第三个投机性代币P(x_3|prefix+x_1+x_2)
也是如此。因为在评分过程中,所有的x_n
都是已知的,我们能够正确地为每个位置应用重复惩罚。最后,如果任何x_n
在拒绝采样过程中被拒绝,所有后续的投机性代币也会被拒绝,这保留了目标模型的分布(包括从重复惩罚等采样参数引起的目标模型分布的扰动)。ccrfmcuu4#
简短的答案是,计算第一个投机性代币等价于计算
P(x_1|prefix)
,其中 x_1 是第一个投机性代币。对于 x_2,它是P(x_2|prefix+x_1)
,对于第三个投机性代币P(x_3|prefix+x_1+x_2)
也是如此。因为在评分过程中,所有的x_n
都是已知的,我们能够正确地为每个位置应用重复惩罚。最后,如果任何x_n
在拒绝采样过程中被拒绝,所有后续的投机性代币也会被拒绝,这保留了目标模型的分布(包括从像重复惩罚这样的采样参数引起的对目标模型分布的扰动)。明白了!非常感谢!