--- license: apache-2.0 datasets: - HKAIR-Lab/HK-O1aw-SFT-16K language: - zh base_model: - meta-llama/Llama-3.1-8B pipeline_tag: text2text-generation tags: - text-generation-inference --- # HK-O1aw (v0) HK-O1aw is a legal assistant with O1-style complex reasoning capabilities, trained using the [Align-Anything](https://github.com/PKU-Alignment/align-anything) framework on the [O1aw-Dataset](https://github.com/HKAIR-Lab/HK-O1aw), based on LLaMA-3.1-8B (pre-trained version). HK-O1aw aims to enhance large language models' reasoning capabilities and complex problem-solving abilities in the legal domain (specifically in Hong Kong). More importantly, HK-O1aw has open-sourced all training data, code, and prompts used for synthetic data generation, providing greater convenience for the community and researchers. - **Developed by:** the [HKAIR-Lab](https://github.com/HKAIR-Lab) Team. - **Fine-tuned from model:** [LLaMA-3.1-8B](https://huggingface.co/meta-llama/Llama-3.1-8B). ## Model Sources - **Repository and Dataset:** ## Example
Model Cases
Case 1 **Prompt:**
一般来说,医生是否可以在未取得病人同意的情况下为病人施予治疗或展开医疗程序?
**Output:**
**分析法律背景**
根据香港的法律,医生通常需要病人的同意才能进行治疗或医疗程序。然而,有例外情况允许在紧急情况下不经同意即可进行治疗,以拯救病人的生命。
**理解紧急情况的例外**
在紧急情况下,如果病人无法给予同意且延误治疗可能危及生命,医生可以在未取得同意的情况下采取行动。这是为了确保病人的生命安全。
**考虑其他可能性**
除了紧急情况,医生通常需要病人或其家属的同意才能进行治疗。没有其他明确的法律条款允许在非紧急情况下不经同意进行治疗。 通过分析,我们确认在非紧急情况下,医生通常需要病人或其家属的同意才能进行治疗。只有在紧急情况下,为了拯救生命而无需获得同意。
Case 2 **Prompt**
业主和租客在没有书面租约下出租和租用物业会涉及甚么潜在的风险?
**Output:**
**分析没有书面租约的风险**
在没有书面租约的情况下,业主和租客可能面临多种风险。首先,双方可能对租赁条款产生分歧,导致法律纠纷。其次,缺乏书面记录可能使得租客在物业管理或维修问题上处于不利地位。此外,如果物业被没收或政府收回土地,租客可能无法获得任何补偿。 **方法一:法律纠纷的可能性** 如果没有书面协议,双方在出租和使用细节上可能会有不同的理解。这种情况下,如果发生争议,法律上很难证明谁是谁非。这意味着如果一方认为另一方违反了协议,他们可能无法通过法律途径获得补偿或解决。 **方法二:物业管理和维修问题** 在没有书面协议的情况下,租客通常无法证明他们支付了费用,因此很难要求业主进行必要的维修或管理。这也意味着如果有任何损坏或需要维护的问题,双方之间的沟通和协调变得更加复杂。 **方法三:政府收回土地的风险** 如果物业被政府没收或收回土地,没有书面协议将使得租客无法获得任何补偿。因为法律上没有明确的合同条款来支持他们的地位,他们可能会失去已付出的所有投资。 通过不同的角度分析,我们可以确认没有书面协议存在多种潜在风险。这些包括法律纠纷、物业管理问题以及政府收回土地的风险。每种方法都从不同方面验证了这些风险,并且都指向相同的结论,即缺乏书面记录会导致严重后果。
Case 3 **Prompt:**
我很少参与高危运动(例如滑水),但我有一次玩这类运动时受伤。这次受伤会被视为「意外」、「自招」抑或「疏忽」事件呢?它会否影响我的医疗或意外保险索偿? **Output:**
**分析受伤事件的性质** 首先,我们需要确定受伤事件的性质。根据定义,意外是指非故意、不可预见和非惯常的事件。自招是指因过度自信或疏忽导致的事故,而疏忽则是指未能采取合理谨慎措施。 **评估滑水作为高危运动** 滑水被归类为高危运动,这意味着它本身具有较高的风险性。我们需要考虑在这种情况下,受伤是否符合意外的定义,即不可预见和非故意。 **检查保险条款中的例外情况** 保险合同通常会列出某些例外情况,例如参与高危运动时发生的事故可能不被涵盖。这需要仔细检查保险合同中的具体条款。 **考虑医疗和意外保险索偿影响** 如果受伤被视为意外而非自招或疏忽,通常会影响保险索偿。医疗保险可能涵盖部分费用,而意外保险则可能提供更全面的赔偿。 通过多种方法分析,我们可以得出结论:如果受伤事件符合意外的定义,并且不在保险合同中的例外情况内,则可能不会影响索偿。但如果被视为自招或疏忽,则可能会影响索偿。
Case 4 **Prompt:**
草拟一份优秀的状书的基本原则是甚么? **Output:**
**分析状书的基本要求** 状书是法律程序中的重要文件,用于正式提出法律请求或申索。其目的是清楚地陈述申索的基础和相关事实。因此,草拟状书时需要明确、具体和准确地描述事件的经过。 **方法一:从法律程序角度分析** 从法律程序的角度来看,状书必须遵循特定的格式和内容要求。这包括提供详细的事实支持、明确列出申索理由以及提供相关证据的概要。这种方法强调对法律程序的遵循。 **方法二:从沟通效率角度分析** 从沟通效率的角度来看,状书应清晰易读,以便法庭和各方能够迅速理解案件背景和申索内容。这意味着使用简单明了的语言,并分段组织信息,以便快速查阅。 **方法三:从策略性角度分析** 从策略性角度来看,草拟者应考虑如何最有效地支持自己的立场。通过选择合适的事实和证据,可以最大化影响法庭判决。此外,了解对方可能提出的抗辩,并在状书中准备相应回应。 通过多种方法验证后,最终确认优秀状书需具备清晰、准确、全面、易读及策略性的特征。这些特征共同确保法庭能够有效理解案件背景并作出公正判决。
Case 5 **Prompt:**
商业为什么需要调解和仲裁? **Output:**
**分析商业调解的必要性** 商业调解在国际贸易中起着重要作用,因为它提供了一种非对抗性的解决争议的方式。通过调解,双方可以在保密的环境下讨论问题,避免公开的法律程序,这对于维护商业关系至关重要。 **探讨仲裁的优势** 仲裁是一种更正式的纠纷解决方式,通常比法院诉讼更快、更私密,并且仲裁判决具有法律约束力。由于国际贸易中可能涉及不同司法管辖区,仲裁提供了一个统一的法律框架来解决争议。 **比较调解和仲裁** 调解和仲裁都是替代性争议解决机制,但它们有不同的特点。调解是自愿且灵活的,而仲裁则具有法律约束力。商业需要这两种机制,以满足不同的需求:调解用于快速解决小额纠纷,而仲裁用于复杂或高价值交易。 **验证和排除其他可能性** 考虑到其他可能的争议解决方式,如直接协商或诉讼,发现这些方法各有局限性。直接协商可能不具备强制执行力,而诉讼过程复杂且耗时。此外,国际贸易中的不同法律体系使得法院诉讼变得复杂。 通过重新审视各个步骤,确认调解和仲裁在国际贸易中的独特作用。它们提供了灵活性、保密性和法律保障,使得商业能够有效地管理风险并维护关系。
## Usage ```python 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] ``` ## Citation Please cite our work if you use the data or model in your paper. ```bash @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}}, } ``` ## License HK-O1aw is released under Apache License 2.0, and you also need to agree with LLAMA 3.1 COMMUNITY LICENSE.