๐ŸŒ 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
1,005
Safetensors
Model size
14.8B params
Tensor type
F16
ยท
Inference Providers NEW
Input a message to start chatting with clouditera/secgpt.

Model tree for clouditera/secgpt

Base model

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

Spaces using clouditera/secgpt 2