🚀 HK-O1aw (v0)
HK-O1aw是一款具備O1風格複雜推理能力的法律助手。它基於LLaMA - 3.1 - 8B(預訓練版本),運用Align - Anything框架在O1aw - Dataset上進行訓練。其旨在提升大語言模型在法律領域(特別是香港地區)的推理能力和複雜問題解決能力。更重要的是,HK-O1aw開源了所有訓練數據、代碼以及用於合成數據生成的提示詞,為社區和研究人員提供了極大的便利。
🚀 快速開始
HK-O1aw是基於LLaMA - 3.1 - 8B微調的法律領域大語言模型,可用於處理各類法律問題的推理和解答。以下是使用該模型的示例代碼:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "HKAIR-Lab/HK-O1aw"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
user_prompt: str = '<|reserved_special_token_0|>{input}<|reserved_special_token_1|>\n'
infer_template = user_prompt + '<|reserved_special_token_2|>\n**'
prompt = "在物業買賣過程中,業主是否有義務將租賃詳情完全披露給準買家?如果未能完全披露,可能會產生哪些法律後果?"
text = infer_template.format(input=prompt)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
✨ 主要特性
- 複雜推理能力:具備O1風格的複雜推理能力,能深入分析法律問題。
- 開源透明:開源了所有訓練數據、代碼和提示詞,方便社區和研究人員使用。
- 領域針對性:專注於香港地區的法律領域,能更好地處理該地區的法律問題。
📦 安裝指南
暫未提供安裝步驟相關內容。
💻 使用示例
基礎用法
以下是使用HK-O1aw模型進行法律問題推理的基礎代碼示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "HKAIR-Lab/HK-O1aw"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
user_prompt: str = '<|reserved_special_token_0|>{input}<|reserved_special_token_1|>\n'
infer_template = user_prompt + '<|reserved_special_token_2|>\n**'
prompt = "在物業買賣過程中,業主是否有義務將租賃詳情完全披露給準買家?如果未能完全披露,可能會產生哪些法律後果?"
text = infer_template.format(input=prompt)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
高級用法
在實際應用中,你可以根據具體需求調整模型的參數,如max_new_tokens
等,以獲得更好的推理結果。例如,如果你需要更長的回覆,可以適當增大max_new_tokens
的值:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "HKAIR-Lab/HK-O1aw"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
user_prompt: str = '<|reserved_special_token_0|>{input}<|reserved_special_token_1|>\n'
infer_template = user_prompt + '<|reserved_special_token_2|>\n**'
prompt = "在物業買賣過程中,業主是否有義務將租賃詳情完全披露給準買家?如果未能完全披露,可能會產生哪些法律後果?"
text = infer_template.format(input=prompt)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
📚 詳細文檔
模型來源
模型案例
模型案例 |
詳情 |
案例1 |
提示:一般來說,醫生是否可以在未取得病人同意的情況下為病人施予治療或展開醫療程序? 輸出:根據香港法律,醫生通常需病人同意才能治療,但緊急情況可例外。緊急時若病人無法同意且延誤危及生命,醫生可行動。非緊急情況,通常需病人或家屬同意。 |
案例2 |
提示:業主和租客在沒有書面租約下出租和租用物業會涉及甚麼潛在的風險? 輸出:無書面租約,業主和租客可能面臨法律糾紛、物業管理或維修問題、政府收回土地無補償等風險。 |
案例3 |
提示:我很少參與高危運動(例如滑水),但我有一次玩這類運動時受傷。這次受傷會被視為「意外」、「自招」抑或「疏忽」事件呢?它會否影響我的醫療或意外保險索償? 輸出:需確定受傷性質,滑水屬高危運動,要考慮是否符合意外定義,檢查保險條款例外情況。若屬意外且不在例外內,可能不影響索償;若屬自招或疏忽,則可能影響。 |
案例4 |
提示:草擬一份優秀的狀書的基本原則是甚麼? 輸出:狀書需明確、具體、準確描述事件。要遵循法律程序格式和內容要求,清晰易讀,考慮策略性支持立場。 |
案例5 |
提示:商業為什麼需要調解和仲裁? 輸出:商業調解提供非對抗性解決爭議方式,仲裁更快、更私密且判決有法律約束力。商業需兩者滿足不同需求,調解用於小額糾紛,仲裁用於複雜或高價值交易。 |
🔧 技術細節
暫未提供技術實現細節相關內容。
📄 許可證
HK-O1aw採用Apache License 2.0許可協議發佈,同時你還需要同意LLAMA 3.1社區許可協議。
📖 引用說明
如果您在論文中使用了我們的數據或模型,請引用我們的工作:
@misc{HK-O1aw,
author = {HKAIR Lab},
title = {HK-O1aw Models: Leveraging O1 Slow Thinking in the Development of Hong Kong Legal Large Language Models},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/HKAIR-Lab/HK-O1aw}},
}