๐ŸŒ SecGPT๏ผšๅ…จ็ƒ้ฆ–ไธช็ฝ‘็ปœๅฎ‰ๅ…จๅผ€ๆบๅคงๆจกๅž‹

๐Ÿ” ๆจกๅž‹็ฎ€ไป‹

SecGPT ๆ˜ฏ็”ฑ ไบ‘่ตทๆ— ๅž  ไบŽ 2023 ๅนดๆญฃๅผๆŽจๅ‡บ็š„ๅผ€ๆบๅคงๆจกๅž‹๏ผŒไธ“ไธบ็ฝ‘็ปœๅฎ‰ๅ…จๅœบๆ™ฏๆ‰“้€ ๏ผŒๆ—จๅœจไปฅไบบๅทฅๆ™บ่ƒฝๆŠ€ๆœฏๅ…จ้ขๆๅ‡ๅฎ‰ๅ…จ้˜ฒๆŠคๆ•ˆ็އไธŽๆ•ˆๆžœใ€‚

โœ… ๆˆ‘ไปฌ็š„ๆ„ฟๆ™ฏ๏ผšๆŽจๅŠจ็ฝ‘็ปœๅฎ‰ๅ…จๆ™บ่ƒฝๅŒ–๏ผŒไธบ็คพไผšๆž„ๅปบๆ›ดๅฎ‰ๅ…จ็š„ๆ•ฐๅญ—็ฉบ้—ด ๐Ÿš€ ๆˆ‘ไปฌ็š„ไฝฟๅ‘ฝ๏ผš่ฎฉๆฏไธ€ๅฎถไผไธš๏ผŒ้ƒฝ่ƒฝๆ‹ฅๆœ‰ไธ€ไธชโ€œๆ‡‚ๅฎ‰ๅ…จโ€็š„ๆ™บ่ƒฝๅŠฉๆ‰‹

SecGPT ่žๅˆไบ†่‡ช็„ถ่ฏญ่จ€็†่งฃใ€ไปฃ็ ็”Ÿๆˆใ€ๅฎ‰ๅ…จ็Ÿฅ่ฏ†ๆŽจ็†็ญ‰ๆ ธๅฟƒ่ƒฝๅŠ›๏ผŒๅทฒๆˆๅŠŸ่ฝๅœฐๅคšไธชๅ…ณ้”ฎๅฎ‰ๅ…จไปปๅŠกๅœบๆ™ฏ๏ผš

  • ๐Ÿ›  ๆผๆดžๅˆ†ๆž๏ผš็†่งฃๆผๆดžๆˆๅ› ใ€่ฏ„ไผฐๅฝฑๅ“่Œƒๅ›ดใ€็”Ÿๆˆไฟฎๅคๅปบ่ฎฎ
  • ๐Ÿงญ ๆ—ฅๅฟ—ไธŽๆต้‡ๆบฏๆบ๏ผš่ฟ˜ๅŽŸๆ”ปๅ‡ป่ทฏๅพ„ใ€ๅˆ†ๆžๆ”ปๅ‡ป้“พ๏ผŒ่พ…ๅŠฉไบ‹ไปถๅค็›˜
  • โš ๏ธ ๅผ‚ๅธธๆฃ€ๆต‹๏ผš่ฏ†ๅˆซๆฝœๅœจๅจ่ƒ๏ผŒๆๅ‡ๅฎ‰ๅ…จๆ„Ÿ็ŸฅไธŽๅ“ๅบ”่ƒฝๅŠ›
  • ๐ŸŽฏ ๆ”ป้˜ฒๆŽจ็†๏ผšๆœๅŠกไบŽ็บข้˜Ÿๆผ”็ปƒใ€่“้˜Ÿๅˆ†ๆž๏ผŒๆ”ฏๆ’‘ๅฎžๆˆ˜ๅ†ณ็ญ–
  • ๐Ÿ“œ ๅ‘ฝไปค่งฃๆž๏ผšๅˆ†ๆžๆ”ปๅ‡ป่„šๆœฌ๏ผŒ่ฏ†ๅˆซๆ„ๅ›พไธŽ้ซ˜ๅฑๆ“ไฝœ
  • ๐Ÿ’ฌ ๅฎ‰ๅ…จ็Ÿฅ่ฏ†้—ฎ็ญ”๏ผšๅ›ข้˜Ÿโ€œๅณ้—ฎๅณ็ญ”โ€็š„็Ÿฅ่ฏ†ๅผ•ๆ“Ž

๐Ÿ”ง ๆœ€ๆ–ฐๅŠจๆ€

  • 2025ๅนด4ๆœˆ๏ผšSecGPT V2.0 ๅ‘ๅธƒ๏ผŒๅ…จ้ขๅ‡็บงๅฎ‰ๅ…จ็†่งฃไธŽไปปๅŠกๆ‰ง่กŒ่ƒฝๅŠ›
  • 2024ๅนด3ๆœˆ๏ผš่ฝป้‡ๅŒ–็‰ˆๆœฌ SecGPT-Mini ๆญฃๅผๅผ€ๆบ๏ผŒๅฏๅœจ CPU ไธŠ้ซ˜ๆ•ˆ่ฟ่กŒ
  • 2023ๅนด12ๆœˆ๏ผšSecGPT ๆญฃๅผๅ‘ๅธƒ๏ผŒๆˆไธบๅ…จ็ƒ้ฆ–ไธชๅผ€ๆบ็ฝ‘็ปœๅฎ‰ๅ…จๅคงๆจกๅž‹

๐Ÿ“‚ ๅผ€ๆบ่ต„ๆบ

๐Ÿ”ง ๆจกๅž‹้ƒจ็ฝฒ

SecGPT ๆ”ฏๆŒ้€š่ฟ‡ vLLM ้ซ˜ๆ€ง่ƒฝๆŽจ็†ๆก†ๆžถ้ƒจ็ฝฒ๏ผŒ้€‚็”จไบŽ ไฝŽๅปถ่ฟŸใ€้ซ˜ๅนถๅ‘ใ€ๅคงๅžๅ้‡ ็š„ๅฎ‰ๅ…จๆจกๅž‹ๆœๅŠกๅœบๆ™ฏใ€‚

็Žฏๅขƒๅ‡†ๅค‡ไธŽๆœๅŠกๅฏๅŠจ๏ผš

# ๅˆ›ๅปบ Python ็Žฏๅขƒ๏ผˆๅปบ่ฎฎ Python 3.10+๏ผ‰
conda create -n secgpt-vllm python=3.10 -y
conda activate secgpt-vllm

# ๅฎ‰่ฃ… vLLM๏ผˆ้œ€ๅ…ทๅค‡ PyTorch + CUDA๏ผ‰
pip install --upgrade pip
pip install vllm


# ๅฏๅŠจserver ๆœๅŠก
CUDA_VISIBLE_DEVICES= xxx(GPU index) \
vllm serve ./secgpt \
  --tokenizer ./secgpt \
  --tensor-parallel-size 4 \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.9 \
  --dtype bfloat16 \
  
# ็คบไพ‹่ฏทๆฑ‚
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "secgpt",
    "messages": [{"role": "user", "content": "ไป€ไนˆๆ˜ฏ XSS ๆ”ปๅ‡ป๏ผŸ"}],
    "temperature": 0.7
  }'

ๆœฌ่ฝฎๆ›ดๆ–ฐไบฎ็‚น๏ผš

1. ๆ›ดๅผบ็š„ๅŸบๅบง่ƒฝๅŠ›๏ผš้€š็”จ+ๅฎ‰ๅ…จๆทฑๅบฆ่žๅˆ

ๆˆ‘ไปฌๅŸบไบŽ Qwen2.5-Instruct ็ณปๅˆ— ไธŽ DeepSeek-R1 ็ณปๅˆ— ๆจกๅž‹๏ผŒ็ป“ๅˆ่‡ชๅปบๅฎ‰ๅ…จไปปๅŠก้›†ไธŽๅฎ‰ๅ…จ็Ÿฅ่ฏ†ๅบ“๏ผŒ ๅœจ 8ๅฐA100 GPU ้›†็พคไธŠๆŒ็ปญ่ฎญ็ปƒไธ€ๅ‘จไปฅไธŠ๏ผŒๅฎŒๆˆๅคง่ง„ๆจก้ข„่ฎญ็ปƒ + ๆŒ‡ไปคๅพฎ่ฐƒ + ๅผบๅŒ–ๅญฆไน ๏ผŒ ๆ˜พ่‘—ๆๅ‡ๆจกๅž‹ๅœจๅฎ‰ๅ…จๅœบๆ™ฏไธญ็š„็†่งฃใ€ๆŽจ็†ไธŽๅ“ๅบ”่ƒฝๅŠ›ใ€‚

ไธ‹ๅ›พๅฑ•็คบไบ†ไธ€ๆฌก่ฎญ็ปƒ่ฟ‡็จ‹ไธญๅ„ๅ…ณ้”ฎๆŒ‡ๆ ‡็š„ๆผ”ๅŒ–่ฝจ่ฟน๏ผš

  • ่ฎญ็ปƒไธŽ้ชŒ่ฏๆŸๅคฑ๏ผˆtrain/loss ไธŽ eval/loss๏ผ‰๏ผšไบŒ่€…ๅ‡ๅ‘ˆ็Žฐๅ‡บๅนณ็จณไธ‹้™่ถ‹ๅŠฟ๏ผŒ่ฏดๆ˜Žๆจกๅž‹ๅœจ่ฎญ็ปƒ้›†ไธŽ้ชŒ่ฏ้›†ไธŠๅ‡ๆŒ็ปญๆ”ถๆ•›๏ผŒๆœชๅ‡บ็Žฐ่ฟ‡ๆ‹Ÿๅˆ่ฟน่ฑกใ€‚
  • ๅญฆไน ็އๆ›ฒ็บฟ๏ผˆtrain/learning_rate๏ผ‰๏ผš้‡‡็”จๅ…ธๅž‹็š„ Warmup + ่กฐๅ‡็ญ–็•ฅ๏ผŒๆœ‰ๆ•ˆๆๅ‡ไบ†ๆ—ฉๆœŸ่ฎญ็ปƒ็š„็จณๅฎšๆ€งไธŽๆ”ถๆ•›้€Ÿๅบฆใ€‚
  • ๆขฏๅบฆ่Œƒๆ•ฐ๏ผˆtrain/grad_norm๏ผ‰๏ผšๆ•ดไฝ“ๆณขๅŠจๅนณ็จณ๏ผŒไป…ๅœจๅฐ‘ๆ•ฐๆญฅๆ•ฐๅญ˜ๅœจ่ฝปๅพฎๅฐ–ๅณฐ๏ผŒๆœชๅ‡บ็Žฐๆขฏๅบฆ็ˆ†็‚ธๆˆ–ๆถˆๅคฑ๏ผŒ่กจๆ˜Ž่ฎญ็ปƒ่ฟ‡็จ‹ๅฅๅบท็จณๅฎšใ€‚
  • ่ฏ„ไผฐ่กจ็Žฐ๏ผševal/runtime ไธŽ eval/samples_per_second ๆณขๅŠจ่Œƒๅ›ดๅฐ๏ผŒ่ฏดๆ˜Žๅœจ่ฏ„ไผฐ่ฟ‡็จ‹ไธญ็ณป็ปŸ่ต„ๆบไฝฟ็”จ้ซ˜ๆ•ˆ๏ผŒๆŽจ็†ๅžๅ้‡็จณๅฎšใ€‚
  • ๅ…ถไป–ๆŒ‡ๆ ‡ๅฆ‚่ฎญ็ปƒ่ฝฎๆ•ฐ๏ผˆtrain/epoch๏ผ‰ใ€่พ“ๅ…ฅ token ๆ•ฐ้‡๏ผˆtrain/num_input_tokens_seen๏ผ‰็ญ‰ไนŸ่กจๆ˜Ž่ฎญ็ปƒ่ฟ‡็จ‹ๅฆ‚ๆœŸ่ฟ›่กŒ๏ผŒ่พพๆˆ้ข„ๆœŸ่ฎกๅˆ’ใ€‚

730deaf7-f202-4dd3-99e1-f659106f02fa

2. ๆ›ดๅคง็š„้ซ˜่ดจ้‡ๅฎ‰ๅ…จ่ฏญๆ–™ๅบ“๏ผš็งๆœ‰ + ๅ…ฌๅ…ฑๆ•ฐๆฎๅŒ่ฝฎ้ฉฑๅŠจ

ๆˆ‘ไปฌๅทฒๆž„ๅปบไบ†ไธ€ไธช่ถ…ๅคง่ง„ๆจกใ€็ป“ๆž„ๅฎŒๅค‡็š„็ฝ‘็ปœๅฎ‰ๅ…จ่ฏญๆ–™ๅบ“๏ผŒๆ€ป้‡่ถ…่ฟ‡ 5TBใ€ๅ…ฑ่ฎก 106,721 ไธชๅŽŸๅง‹ๆ–‡ไปถ๏ผŒๅ…ถไธญ่ถ…่ฟ‡ 40% ๅ†…ๅฎนไธบไบบๅทฅ็ฒพ้€‰ไธŽ็ป“ๆž„ๅŒ–ๅค„็†ใ€‚็งๆœ‰ๆ•ฐๆฎ้ƒจๅˆ†็ณป็ปŸๆ•ดๅˆไบ†ๅ…ทๅค‡ 70+ ๅญ—ๆฎต / 14 ็ฑป็ป“ๆž„ๆ ‡็ญพไฝ“็ณป ็š„ๅฎ‰ๅ…จๆ•ฐๆฎ่ต„ๆบ๏ผŒ็ป่ฟ‡็ปŸไธ€ๆธ…ๆด—ใ€่ฏญไน‰ๆ ‡ๆณจไธŽ้‡ๆž„๏ผŒๆž„ๅปบๅ‡บ ๆ•ฐ็™พไบฟ Tokens ็บง็š„้ซ˜่ดจ้‡่ฏญๆ–™๏ผŒไธบๅคงๆจกๅž‹ๆทฑๅบฆๆŽจ็†่ƒฝๅŠ›ๆไพ›ๅšๅฎžๆ”ฏๆ’‘ใ€‚

ไธ‹ๅ›พๅฑ•็คบไบ†่ฏฅ่ฏญๆ–™ๅบ“็š„ๆž„ๆˆ็ปดๅบฆ๏ผŒๆ•ดไฝ“้‡‡้›†้€ป่พ‘้ตๅพชโ€œ็†่ฎบๆ”ฏๆ’‘ โ€” ๅฎžๆˆ˜ๅฏนๆŠ— โ€” ๅบ”็”จ่ฝๅœฐโ€ไธ‰ๅฑ‚็ป“ๆž„ไฝ“็ณป๏ผš

  • ็†่ฎบๆ”ฏๆ’‘๏ผšๆถต็›–ๆณ•ๅพ‹ๆณ•่ง„ใ€ๅญฆๆœฏ่ฎบๆ–‡ใ€่กŒไธšๆŠฅๅ‘Š็ญ‰ๆƒๅจ่ต„ๆ–™๏ผŒไธบๆจกๅž‹ๆไพ›็จณๅ›บ็š„็Ÿฅ่ฏ†ๅŸบๅบง๏ผ›
  • ๅฎžๆˆ˜ๅฏนๆŠ—๏ผšๅŒ…ๆ‹ฌๆผๆดž่ฏฆๆƒ…ใ€CTF้ข˜ๅบ“ใ€ๆ—ฅๅฟ—ๆต้‡ใ€ๆถๆ„ๆ ทๆœฌไธŽ้€†ๅ‘ๅˆ†ๆž็ญ‰ๆ•ฐๆฎ๏ผŒๆๅ‡ๆจกๅž‹ๅฏน็œŸๅฎžๆ”ปๅ‡ป่กŒไธบ็š„่ฏ†ๅˆซไธŽ่ฟฝ่ธช่ƒฝๅŠ›๏ผ›
  • ๅบ”็”จ่ฝๅœฐ๏ผšๆถต็›–ๅฎ‰ๅ…จ็คพๅŒบๅšๅฎขใ€ๆ•™่‚ฒๅŸน่ฎญ่ต„ๆ–™ใ€ๅฎ‰ๅ…จ็Ÿฅ่ฏ†ๅ›พ่ฐฑไธŽ่‡ชๅŠจๅŒ–็ญ–็•ฅ๏ผŒๅขžๅผบๆจกๅž‹ๅœจๅฎ‰ๅ…จ่ฟ่ฅใ€่พ…ๅŠฉๅ†ณ็ญ–็ญ‰ๅœบๆ™ฏไธญ็š„้€‚้…่ƒฝๅŠ›ใ€‚

c93a1385-6c8b-4e88-80b8-965ca366b8d6

๐Ÿงช ๆจกๅž‹่ฏ„ๆต‹ไธŽ่ƒฝๅŠ›ๅˆ†ๆž

1. ๆจกๅž‹่ƒฝๅŠ›่ฏ„ๆต‹๏ผšๅ…จ้ขๆŒ‡ๆ ‡่ทƒๅ‡๏ผŒๅฎžๆˆ˜ๆ™บ่ƒฝๅˆ็Žฐ

ไธบๅ…จ้ข่ฏ„ไผฐ SecGPT ็š„ๅฎ‰ๅ…จๅฎžๆˆ˜่ƒฝๅŠ›๏ผŒๆˆ‘ไปฌๆž„ๅปบไบ†ไธ€ๅฅ—่ฆ†็›–ๅฎ‰ๅ…จ่ฏไนฆ้—ฎ็ญ”ใ€ๅฎ‰ๅ…จ้€š่ฏ†ใ€็ผ–็จ‹่ƒฝๅŠ›ใ€็Ÿฅ่ฏ†็†่งฃไธŽๆŽจ็†่ƒฝๅŠ›็š„็ปผๅˆ่ฏ„ไผฐไฝ“็ณป๏ผŒไธป่ฆ้‡‡็”จไปฅไธ‹ๆ ‡ๅ‡†ๅŒ–ๆ•ฐๆฎ้›†๏ผšCISSPใ€CS-EVALใ€CEVALใ€GSM8Kใ€BBHใ€‚

่ฏ„ๆต‹้›†ๅ็งฐ ็ฎ€่ฆ่ฏดๆ˜Ž ๅ‚่€ƒ้“พๆŽฅ
CISSP ๆƒๅจไฟกๆฏๅฎ‰ๅ…จ่ฎค่ฏไฝ“็ณป๏ผŒ่€ƒๅฏŸๆจกๅž‹ๅœจๅฎ‰ๅ…จ็ฎก็†ใ€่ฎฟ้—ฎๆŽงๅˆถใ€้ฃŽ้™ฉๆฒป็†็ญ‰้ข†ๅŸŸ็š„ไธ“ไธš็Ÿฅ่ฏ†่ฆ†็›–ๅบฆไธŽ็ญ”้ข˜ๅ‡†็กฎ็އ๏ผŒ้€‚็”จไบŽ่ฏ„ไผฐๆจกๅž‹ๅœจ้€š็”จไฟกๆฏๅฎ‰ๅ…จ้ข†ๅŸŸ็š„ๆŽŒๆก็จ‹ๅบฆใ€‚ ISCยฒ ๅฎ˜ๆ–น็ฝ‘็ซ™ ่ฎค่ฏ่€ƒ่ฏ•ๆŒ‡ๅ—
CS-Eval ้ขๅ‘็ฝ‘็ปœๅฎ‰ๅ…จไปปๅŠก็š„ๅคงๆจกๅž‹่ƒฝๅŠ›็ปผๅˆ่ฏ„ๆต‹้›†๏ผŒ่ฆ†็›– 11 ไธช็ฝ‘็ปœๅฎ‰ๅ…จไธป็ฑปใ€42 ไธชๅญ็ฑป๏ผŒๅ…ฑ่ฎก 4369 ้“้ข˜็›ฎ๏ผŒๅŒ…ๅซ้€‰ๆ‹ฉ้ข˜ใ€ๅˆคๆ–ญ้ข˜ใ€็Ÿฅ่ฏ†ๆŠฝๅ–็ญ‰้ข˜ๅž‹๏ผŒๅ…ผ้กพ็Ÿฅ่ฏ†ๆ€งไธŽๅฎžๆˆ˜ๆ€ง๏ผŒ็”จไบŽ่ฏ„ไผฐๆจกๅž‹็š„ๅฎ‰ๅ…จ้€š่ฏ†ไธŽไปปๅŠกๆ‰ง่กŒ่ƒฝๅŠ›ใ€‚ ModelScope ๆ•ฐๆฎ้›† ่ฎบๆ–‡ไป‹็ป (arXiv)
C-Eval ไธญๆ–‡่ƒฝๅŠ›่ฏ„ไผฐใ€‚็”ฑไธŠๆตทไบค้€šๅคงๅญฆใ€ๆธ…ๅŽๅคงๅญฆๅ’Œ็ˆฑไธๅ กๅคงๅญฆ็š„็ ”็ฉถไบบๅ‘˜ๅœจ2023ๅนด5ๆœˆ่”ๅˆๆŽจๅ‡บใ€‚ๅŒ…ๅซ13948ไธชๅคš้กน้€‰ๆ‹ฉ้ข˜๏ผŒๆถต็›–ไบ†52ไธชไธๅŒ็š„ๅญฆ็ง‘ๅ’Œๅ››ไธช้šพๅบฆ็บงๅˆซใ€‚ ่ฎบๆ–‡้“พๆŽฅ (arXiv) CSDN ๅฎž่ทตไป‹็ป
GSM8K ่งฃๅ†ณๆ•ฐๅญฆ้—ฎ้ข˜็š„่ƒฝๅŠ›ใ€‚Googleๅผ€ๅ‘็š„ไธ€ไธชๆ•ฐๅญฆ้—ฎ้ข˜ๆฑ‚่งฃๆ•ฐๆฎ้›†๏ผŒๅŒ…ๅซๅคง็บฆ8,000ไธช้ซ˜ไธญๅˆฐๅคงๅญฆๆฐดๅนณ็š„ๆ•ฐๅญฆ้—ฎ้ข˜ใ€‚ GSM8K GitHub
BBH ๅคๆ‚่ฏญ่จ€็†่งฃ่ƒฝๅŠ›ใ€‚็”ฑGoogleใ€ๆ–ฏๅฆ็ฆ็ญ‰็ ”็ฉถไบบๅ‘˜ๅผ€ๅ‘็š„ๆ•ฐๆฎ้›†๏ผŒๅŒ…ๅซๅคง้‡ๅคๆ‚่ฏญ่จ€็†่งฃไปปๅŠก็š„้›†ๅˆ๏ผŒๅฏ่ƒฝๅŒ…ๅซ้œ€่ฆๆทฑๅบฆๆŽจ็†ใ€ๅธธ่ฏ†่ฟ็”จๆˆ–ๅคๆ‚่ฎค็ŸฅๆŠ€่ƒฝ็š„ไปปๅŠกใ€‚ ่ฎบๆ–‡้“พๆŽฅ (arXiv)

ๅœจไธŽๅŽŸๅง‹ๆจกๅž‹ SecGPT-mini ็š„ๅฏนๆฏ”ไธญ๏ผŒ่ฎญ็ปƒๅŽ็š„ๆจกๅž‹ๅœจๆ‰€ๆœ‰ๆŒ‡ๆ ‡ไธŠๅ‡ๅฎž็Žฐๅคงๅน…่ทƒๅ‡๏ผŒๅ…ทไฝ“ๅฆ‚ไธ‹๏ผš

1.1 ๆจกๅž‹็บตๅ‘่ฏ„ๆต‹ๅฏนๆฏ”

ๆจกๅž‹็‰ˆๆœฌ CISSP CS-EVAL CEVAL GSM8K BBH
SecGPT-mini 25.67 39.64 37.50 3.87 21.80
SecGPT-1.5B 71.09๐Ÿ”บ+45.42 81.53 ๐Ÿ”บ+41.89 53.5 ๐Ÿ”บ+16.00 57.47๐Ÿ”บ+53.60 45.17๐Ÿ”บ+23.37
SecGPT-7B 78.23๐Ÿ”บ+52.97 85.12 ๐Ÿ”บ+45.48 72.89๐Ÿ”บ+35.39 76.88๐Ÿ”บ+73.01 67.08๐Ÿ”บ+45.28
SecGPT-14B 77.37๐Ÿ”บ+51.70 86.12 ๐Ÿ”บ+46.48 59.45๐Ÿ”บ+29.95 88.25๐Ÿ”บ+84.38 75.90๐Ÿ”บ+54.10

๐Ÿ“ˆ ่ƒฝๅŠ›่ทƒๅ‡่งฃ่ฏป๏ผš

  • mini โ†’ 1.5B๏ผšๅ…ทๅค‡โ€œ่ƒฝ็ญ”ๅฏนโ€็š„ๅŸบ็ก€้—ฎ็ญ”่ƒฝๅŠ›๏ผŒ้€‚้…ไธญไฝŽๅคๆ‚ๅบฆไปปๅŠก๏ผ›
  • 1.5B โ†’ 7B๏ผšๆŽจ็†ๆทฑๅบฆใ€ๆณ›ๅŒ–่ƒฝๅŠ›ๆ˜พ่‘—ๅขžๅผบ๏ผŒ่ƒฝ็†่งฃไปปๅŠกๆ„ๅ›พๅนถๆž„ๅปบ่พƒไธบๅฎŒๆ•ด็š„่งฃๅ†ณ่ทฏๅพ„๏ผ›
  • 7B โ†’ 14B๏ผš่ƒฝๅŠ›่ทƒ่ฟ่‡ณโ€œ็ฑปไธ“ๅฎถโ€็บง๏ผŒ่ƒฝๅคŸๅค„็†้ซ˜ๅคๆ‚ๅบฆๆŽจ็†ใ€ๅฎ‰ๅ…จ็ญ–็•ฅๅˆถๅฎš็ญ‰้ซ˜้˜ถไปปๅŠกใ€‚

1.2 ๆจกๅž‹ๆจชๅ‘่ฏ„ๆต‹ๅฏนๆฏ”

็›ธ่พƒไบŽๅŸบ็ก€ๆจกๅž‹ Qwen2.5-Instruct๏ผŒSecGPT ๅœจๆ‰€ๆœ‰่ฏ„ๆต‹ๆŒ‡ๆ ‡ไธŠๅ‡ๅฎž็Žฐๅฎž่ดจๆ€ง่ถ…่ถŠ๏ผŒๅๆ˜ ๅ‡บๆˆ‘ไปฌๅœจๆ•ฐๆฎๆž„ๅปบใ€ๅพฎ่ฐƒ่Œƒๅผใ€ๅฎ‰ๅ…จไปปๅŠก็ฒพ่ฐƒๆœบๅˆถไธŠ็š„ๆ•ดไฝ“ไผ˜ๅŒ–ๆˆๆ•ˆ๏ผš

ๆจกๅž‹็‰ˆๆœฌ CISSP โ†‘ CS-EVAL โ†‘ CEVAL โ†‘ GSM8K โ†‘ BBH โ†‘
Qwen2.5-1.5B 52.97 71.66 59.91 61.03 43.44
SecGPT-1.5B 71.09 81.53 53.5 57.47 45.17
Qwen2.5-7B 66.30 84.66 74.97 80.36 71.20
SecGPT-7B 78.23 85.12 72.89 76.88 67.08
Qwen2.5-14B 71.09 86.22 68.57 90.03 78.25
SecGPT-14B 77.37 86.12 59.45 88.25 75.90

๐Ÿ’ก ๆดžๅฏŸไบฎ็‚น๏ผš

  • ๅœจ CISSP ๅ’Œ CS-EVAL ็ญ‰ๅฎ‰ๅ…จ็ฑปๆ•ฐๆฎ้›†ไธŠ๏ผŒSecGPT ๅœจๆ‰€ๆœ‰ๅ‚ๆ•ฐ่ง„ๆจกไธ‹ๅ‡่กจ็Žฐไผ˜ไบŽ Qwen2.5 ๅŒ่ง„ๆ ผ็‰ˆๆœฌ๏ผ›
  • ่กจๆ˜Žๆˆ‘ไปฌๆž„ๅปบ็š„ๅฎ‰ๅ…จไปปๅŠกๆŒ‡ไปค้›†ไธŽ็ฒพ่ฐƒ็ญ–็•ฅๅทฒๆ˜พ่‘—ๆๅ‡ๆจกๅž‹็š„ๅฎžๆˆ˜ๅบ”็”จ่ƒฝๅŠ›ไธŽไธ“ไธš้—ฎ็ญ”ๆทฑๅบฆใ€‚

2. ๅฎ‰ๅ…จ่ƒฝๅŠ›ๆๅ‡๏ผšๆ›ดๅ…จใ€ๆ›ดๅ‡†ใ€ๆ›ดไธ“ไธš

ๆœฌ่ฝฎๅ‡็บงไธญ๏ผŒSecGPT ๅœจๅฎ‰ๅ…จ็Ÿฅ่ฏ†้—ฎ็ญ”ๆ–น้ขๅฎŒๆˆไบ†ไปŽไฟกๆฏๆ•ดๅˆๅˆฐ้€ป่พ‘่พ“ๅ‡บ็š„่ƒฝๅŠ›่ทƒ่ฟ๏ผŒๅ…ทไฝ“ไฝ“็Žฐๅœจ๏ผš

  • ็Ÿฅ่ฏ†่ฆ†็›–ๆ›ดๅ…จ้ข๏ผšๅผ•ๅ…ฅไบ†ๆถต็›–ๆณ•ๅพ‹ๆณ•่ง„ใ€ๆ”ปๅ‡ปๆˆ˜ๆœฏใ€้€†ๅ‘ๅˆ†ๆž็ญ‰14็ฑปๅฎ‰ๅ…จ็Ÿฅ่ฏ†้ข†ๅŸŸ็š„็ป“ๆž„ๅŒ–่ฏญๆ–™๏ผ›
  • ็ญ”ๆกˆ็”Ÿๆˆๆ›ด็ฒพๅ‡†๏ผš้€š่ฟ‡ๅคš่ฝฎๅฏน่ฏๆŽงๅˆถไธŽ่ฏญไน‰ไผ˜ๅŒ–ๆŠ€ๆœฏ๏ผŒๆๅ‡ไบ†้—ฎ็ญ”ๅฏน้ฝ็އไธŽไธŠไธ‹ๆ–‡่ฎฐๅฟ†็จณๅฎšๆ€ง๏ผ›
  • ๆŽจ็†่ƒฝๅŠ›ๆ›ด็ชๅ‡บ๏ผšๅ…ทๅค‡ๅคšๆฎต็Ÿฅ่ฏ†่”็ป“ไธŽๅคๅˆ้€ป่พ‘ๆŽจๆผ”่ƒฝๅŠ›๏ผŒ่ƒฝๅฎŒๆˆๅฆ‚ๆ”ปๅ‡ป้“พๅˆ†ๆžใ€ๅจ่ƒ็ ”ๅˆค็ญ‰ๅคๆ‚ไปปๅŠกใ€‚

2.1 ๆธ—้€ๆต‹่ฏ•ๅœบๆ™ฏ่ƒฝๅŠ›๏ผš

SecGPT ่ƒฝๅคŸๆจกๆ‹Ÿๆธ—้€ๆ”ปๅ‡ปๆต็จ‹๏ผŒไปŽไฟกๆฏๆ”ถ้›†ใ€ๆผๆดžๅˆฉ็”จๅˆฐๆๆƒๆจชๅ‘๏ผŒๅ…ทๅค‡ๅ…ณ้”ฎๅทฅๅ…ทๅ‘ฝไปคๅˆ†ๆžใ€Payload ๆž„้€ ใ€ๅˆฉ็”จ้“พ็”Ÿๆˆ็ญ‰่ƒฝๅŠ›ใ€‚

img

img

img

img

2.2 ๆ—ฅๅฟ—ๅˆ†ๆžๅ’Œๆต้‡ๅˆ†ๆž่ƒฝๅŠ›

ๅœจๅฎ‰ๅ…จๆ—ฅๅฟ—ไธŽ็ฝ‘็ปœๆต้‡ๅœบๆ™ฏไธ‹๏ผŒSecGPT ่ƒฝ่‡ชๅŠจ่ฏ†ๅˆซๅผ‚ๅธธไบ‹ไปถใ€ๆž„ๅปบๆ”ปๅ‡ป้“พๅ›พ่ฐฑใ€ๆŠฝๅ–ๅ…ณ้”ฎ IOC๏ผˆIndicator of Compromise๏ผ‰๏ผŒ่พ…ๅŠฉๅฎŒๆˆไบ‹ไปถๆบฏๆบไธŽๅ‘Š่ญฆๅˆ†็ฑปใ€‚

img

img

2.3 ้€†ๅ‘ๅˆ†ๆž่ƒฝๅŠ›

ๅŸบไบŽๅฏนๅๆฑ‡็ผ–ใ€API ่ฐƒ็”จๅบๅˆ—ใ€ๅŠ ๅฃณ่กŒไธบ็ญ‰ไฝŽๅฑ‚ๆ•ฐๆฎ็š„็†่งฃ๏ผŒSecGPT ่ƒฝ่พ…ๅŠฉๅฎŒๆˆๆถๆ„ๆ ทๆœฌ็š„้™ๆ€ๅˆ†ๆžใ€็‰นๅพๆๅ–ไธŽๅฎถๆ—ๅฝ’็ฑป๏ผŒๅ…ทๅค‡ไธ€ๅฎš็š„้€†ๅ‘่พ…ๅŠฉ่งฃ่ฏป่ƒฝๅŠ›ใ€‚

img

img

img

2.4 ไปฃ็ ๅฎก่ฎก่ƒฝๅŠ›

import java.util.*;
import java.util.stream.Collectors;

public class AverageCalculator {

    public static double calculateAverage(Object input, boolean strict) {
        if (strict) {
            System.out.println("Running in STRICT mode");

           
            @SuppressWarnings("unchecked")
            List<Number> numbers = (List<Number>) input;
            double total = 0;
            for (Number num : numbers) {
                total += num.doubleValue();
            }
            return total / numbers.size();
        } else {
            System.out.println("Running in SAFE mode");

            List<Double> parsed = parseInputSafe(input);
            double total = parsed.stream().mapToDouble(Double::doubleValue).sum();
            return total / parsed.size();
        }
    }

   
    public static List<Double> parseInputSafe(Object input) {
        List<Double> result = new ArrayList<>();

        if (input instanceof String) {
            String s = (String) input;
            if (!s.matches("\\d+")) {
                throw new IllegalArgumentException("String must contain only digits.");
            }
            for (char c : s.toCharArray()) {
                result.add(Double.parseDouble(String.valueOf(c)));
            }
        } else if (input instanceof List<?>) {
            for (Object obj : (List<?>) input) {
                try {
                    result.add(Double.parseDouble(obj.toString()));
                } catch (NumberFormatException e) {
                    throw new IllegalArgumentException("Invalid element in list: " + obj);
                }
            }
        } else {
            throw new IllegalArgumentException("Unsupported input type: " + input.getClass());
        }

        return result;
    }

   
    public static void main(String[] args) {
        List<TestCase> testCases = Arrays.asList(
            new TestCase("12345", false),
            new TestCase("12345", true),           
            new TestCase(Arrays.asList(1, 2, "3", "4"), false),
            new TestCase(Arrays.asList(1, 2, 3, "four"), false),
            new TestCase(Arrays.asList(1, 2, 3, "four"), true)   
        );

        for (int i = 0; i < testCases.size(); i++) {
            TestCase tc = testCases.get(i);
            System.out.println("\n--- Test Case " + (i + 1) + " | strict=" + tc.strict + " ---");
            try {
                double avg = calculateAverage(tc.input, tc.strict);
                System.out.println("โœ… Average: " + avg);
            } catch (Exception e) {
                System.out.println("โŒ Error: " + e.getMessage());
            }
        }
    }

   
    static class TestCase {
        Object input;
        boolean strict;

        TestCase(Object input, boolean strict) {
            this.input = input;
            this.strict = strict;
        }
    }
}

img

2.5 ๅทฅๅ…ทไฝฟ็”จ

img

img

๐Ÿ“ฎ ่”็ณปๆˆ‘ไปฌ

SecGPT ๆ˜ฏไธ€ไธช้ขๅ‘็ฝ‘็ปœๅฎ‰ๅ…จ้ข†ๅŸŸ็š„ๅคงๆจกๅž‹ๅผ€ๆบ้กน็›ฎ๏ผŒๆˆ‘ไปฌ็›ธไฟกๅผ€ๆ”พใ€ๅไฝœใ€ๅ…ฑไบซ็š„ๅŠ›้‡๏ผŒ่ƒฝๅคŸไธๆ–ญๆŽจๅŠจ่กŒไธšๆ™บ่ƒฝๅŒ–่ฟ›็จ‹ใ€‚

ๆˆ‘ไปฌ่ฏšๆŒš้‚€่ฏทๅ…จ็ƒ็š„ๅฎ‰ๅ…จ็ ”็ฉถ่€…ใ€ๅทฅ็จ‹ๅธˆใ€็ˆฑๅฅฝ่€…ๅ…ฑๅŒๅ‚ไธŽ SecGPT ็š„ๅปบ่ฎพไธŽไผ˜ๅŒ–๏ผš

  • ๐Ÿง  ๆๅ‡บไฝฟ็”จๅปบ่ฎฎๆˆ–ๅŠŸ่ƒฝ้œ€ๆฑ‚
  • ๐Ÿž ๅ้ฆˆ้—ฎ้ข˜ๅนถๆไบค Issue
  • ๐Ÿ’ป ่ดก็Œฎไปฃ็ ไธŽๅฎ‰ๅ…จไปปๅŠกๆ•ฐๆฎ้›†
  • ๐Ÿ“ข ๅ‚ไธŽไฝฟ็”จ็ป้ชŒไบคๆตไธŽๆœ€ไฝณๅฎž่ทตๅˆ†ไบซ

๐Ÿ“ฌ ่‹ฅๆ‚จๅฏนๆจกๅž‹ๆœ‰ไปปไฝ•็–‘้—ฎๆˆ–ๅˆไฝœๆ„ๅ‘๏ผŒๆฌข่ฟŽ้€š่ฟ‡ GitHub ๅ‚ไธŽ่ดก็Œฎๆˆ–่”็ณปไบ‘่ตทๆ— ๅž ๅ›ข้˜Ÿใ€‚ๆˆ‘ไปฌๆœŸๅพ…ไธŽๆ›ดๅคšๅฟ—ๅŒ้“ๅˆ็š„ไผ™ไผดไธ€่ตท๏ผŒๅ…ฑๅปบโ€œ็œŸๆญฃๆ‡‚ๅฎ‰ๅ…จโ€็š„ AI ็ณป็ปŸใ€‚

โญ Star History

Star History Chart

โš ๏ธ ๅ…่ดฃๅฃฐๆ˜Ž

ๅœจไฝฟ็”จ SecGPT ๆ—ถ๏ผŒ่ฏทๆ‚จๆณจๆ„ไปฅไธ‹ไบ‹้กน๏ผš

  • ๆœฌ้กน็›ฎไธบ็ ”็ฉถไธŽไบคๆต็›ฎ็š„ๆ‰€ๆž„ๅปบ๏ผŒ่พ“ๅ‡บๅ†…ๅฎนๅฏ่ƒฝๅ—้™ไบŽๆจกๅž‹่ฎญ็ปƒๆ•ฐๆฎ็š„่ฆ†็›–่Œƒๅ›ด๏ผ›
  • ็”จๆˆทๅœจไฝฟ็”จๆจกๅž‹่ฟ‡็จ‹ไธญ๏ผŒๅบ”่‡ช่กŒๅˆคๆ–ญๅ…ถ่พ“ๅ‡บ็š„ๆญฃ็กฎๆ€งไธŽ้€‚็”จๆ€ง๏ผ›
  • ่‹ฅๆ‚จ่ฎกๅˆ’ๅฐ†ๆœฌๆจกๅž‹็”จไบŽ ๅ…ฌๅผ€ๅ‘ๅธƒๆˆ–ๅ•†ไธšๅŒ–้ƒจ็ฝฒ๏ผŒ่ฏทๅŠกๅฟ…ๆ˜Ž็กฎๆ‰ฟๆ‹…็›ธๅ…ณๆณ•ๅพ‹ๅ’Œๅˆ่ง„่ดฃไปป๏ผ›
  • ๆœฌ้กน็›ฎ็š„ๅผ€ๅ‘่€…ๅฏนๅ› ไฝฟ็”จๆœฌๆจกๅž‹๏ผˆๅŒ…ๆ‹ฌไฝ†ไธ้™ไบŽๆจกๅž‹ๆœฌ่บซใ€่ฎญ็ปƒๆ•ฐๆฎใ€่พ“ๅ‡บๅ†…ๅฎน๏ผ‰ๆ‰€ๅฏ่ƒฝไบง็”Ÿ็š„ไปปไฝ•็›ดๆŽฅๆˆ–้—ดๆŽฅๆŸๅฎณๆฆ‚ไธ่ดŸ่ดฃใ€‚
Downloads last month
592
Safetensors
Model size
14.8B params
Tensor type
FP16
ยท
Inference Providers NEW
The selected billing account doesn't have any compatible Inference Provider enabled for this model. Settings

Model tree for clouditera/secgpt

Base model

Qwen/Qwen2.5-14B
Finetuned
(185)
this model
Quantizations
5 models

Spaces using clouditera/secgpt 2