TL;DR: 用 Qwen3.5-9B(Q4_K)在單張 16GB AMD GPU 上跑本地 LLM-as-a-Verifier,每次 code comparison 約 0.5–2 秒,cache hit rate 66%,正確程式碼穩定給 1.0 分,有 bug 的給 0.0–0.14 分。16GB 跑 9B 模型綽綽有餘,還有空間跑其他服務。 這篇是實測續篇,前兩篇分別講了 架構設計 和 Docker 封裝 。前兩篇講的是「做什麼」跟「怎麼做」,這篇來量「到底多快」。 1. 測試環境 在一台 homelab Linux(CachyOS)上跑的: 項目 內容 GPU AMD 16GB(15.9 GiB)via ROCm 模型 Qwen3.5-9B(8.95B 參數,Q4_K ~5.7GB GGUF) 後端 llama.cpp(llama-server,ROCm HIP build) Verifier Docker container(llm-verifier),port 8010 模型 VRAM ~10.2 GB(模型本身 + 動態 KV cache) GPU 使用率 78% 系統 RAM 62 GB;使用 27 GB(swap 用了 9.3 GB) Context window 131,072 tokens MIN_SCORE 0.8 後端跑在另一台機器上,走 local Gigabit 網路連線。 2. Verifier 在幹嘛 docker-llm-as-a-verifier 包裝了 LLM-as-a-Verifier 這個研究套件,讀取 token-level log probability 來算連續分數,不是簡單的 yes/no 判斷。 Container 開了 7 個 HTTP endpoint: Endpoint Method 用途 /health GET 健康檢查 /v1/compare POST 兩組答案比對評分 /v1/select POST Best-of-N 選最佳 /v1/track POST Agent 軌跡分數追蹤 /v1/directed POST 導...
參考自男丁格爾大大的文章:http://abgne.tw/jquery/apply-jquery/jquery-web-tabs.html
男丁格爾大大的教學寫得十分詳盡,也可以至男丁格爾大大的文章去看看囉。
我是把這個東西放在一個在 Blog 文章底下另外加上的 section,必須進入文章 (Pagetype = item) 才會顯示 (利用 <b:if> ),然後讓裡頭的 widget 利用 jQuery,使得整個版面不會一直拉長,並且提供 TAB 頁籤來做切換。
底下簡單說明一下我的作法
首先是 CSS,略作修改,其中,div#main2 即是用來賦予 <b:section id=’main2’> 樣式的。
<style type='text/css'>
ul.tabs {
margin: 0;
padding: 0;
list-style: none;
width: 100%;
height: 22px;
border-bottom: solid 1px #999;
border-left: solid 1px #999;
}
ul.tabs li {
float: left;
height: 21px;
line-height: 21px;
overflow: hidden;
position: relative;
margin-bottom: -1px; /* 讓 li 往下移來遮住 ul 的部份 border-bottom */
border: solid 1px #999;
border-left: none;
background: #e1e1e1;
}
ul.tabs li a {
display: block;
padding: 0 20px;
color: #000;
border: solid 1px #fff;
text-decoration: none;
}
ul.tabs li a:hover {
background: #FEFEFE;
}
ul.tabs li.active {
background: #fff;
border-bottom: solid 1px #fff;
border-top: solid 3px red;
height: 19px;
}
ul.tabs li.active a:hover {
background: #fff;
}
div#main2 {
border-right: 1px solid #999;
border-bottom: 1px solid #999;
border-left: 1px solid #999;
padding: 1em 1em 0 1em;
}
</style> 再來就是選單區,其中 href=’#HTML6’ 就是要指到底下的 <b:widget id=’HTML6’>,以此類推。
<ul class='tabs'>
<li><a href='#HTML6'>相關文章</a></li>
<li><a href='#HTML5'>熱門點閱</a></li>
<li><a href='#HTML11'>Pushba! 推推</a></li>
<li><a href='#HTML7'>推薦閱讀</a></li>
<li><a href='#HTML31'>噗噗浪</a></li>
<li><a href='#HTML32'>臉書聊聊</a></li>
</ul> 底下這塊很熟悉吧,這個就是像你的側邊欄會一塊一塊的東西,所以你也可以試著在原來的側邊欄下方另外再切一個側邊欄,然後把這個新的側邊欄改成 TAB 頁籤顯示的方式,點選頁籤之後切換 widget 就不會讓側邊欄一直變長啦。
<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='HTML6' locked='false' title='' type='HTML'/>
<b:widget id='HTML11' locked='false' title='' type='HTML'/>
<b:widget id='HTML5' locked='false' title='' type='HTML'/>
<b:widget id='HTML7' locked='false' title='' type='HTML'/>
<b:widget id='HTML31' locked='false' title='' type='HTML'/>
<b:widget id='HTML32' locked='false' title=’' type='HTML'/>
</b:section> 最後,再把 jQuery 程式加上去就搞定了,針對 id 為 main2 的 section,底下的 .widget 做 hide 的動作。(ps. 文字說明都是男丁大大寫的,很容易懂)
<script language='JavaScript' type='text/javascript'>
$(function() {
// 預設顯示第一個 Tab
var_showTab = 0;
$('ul.tabs li').eq(_showTab).addClass('active');
$('#main2 > .widget').hide().eq(_showTab).show();
// 當 li 頁籤被點擊時...
// 若要改成滑鼠移到 li 頁籤就切換時, 把 click 改成 mouseover
$('ul.tabs li').click(function() {
// 找出 li 中的超連結 href(#id)
var $this = $(this), _clickTab = $this.find('a').attr('href');
// 把目前點擊到的 li 頁籤加上 .active
// 並把兄弟元素中有 .active 的都移除 class
$this.addClass('active').siblings('.active').removeClass('active');
// 淡入相對應的內容並隱藏兄弟元素
$(_clickTab).stop(false, true).fadeIn().siblings().hide();
return false;
}).find('a').focus(function(){
this.blur();
});
});
</script> 裝好的成果如每篇文章頁面底下所示。
Hello,
回覆刪除Excellent script and very nice I'm already using it, but ..
how to make like this table
" * 好格輪播
* 近期文章
* 近期回應
"
thank you for it.
Hello, you can look this url:
回覆刪除tabbed-sidebar-widget-for-blogger