-
Notifications
You must be signed in to change notification settings - Fork 91
Add files via upload #258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add files via upload #258
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,18 +6,18 @@ | |
|
|
||
| from method import build_prompt, select_examples | ||
|
|
||
| from method import annotate_nvidia as annotate # For Nvidia GPU | ||
| # from method import annotate_ascend as annotate # For Huawei Ascend | ||
| # from method import annotate_nvidia as annotate # For Nvidia GPU | ||
| from method import annotate_ascend as annotate # For Huawei Ascend | ||
|
|
||
| TASK_FILES = { | ||
| 1: './data/openseek-1_closest_integers.json', | ||
| 2: './data/openseek-2_count_nouns_verbs.json', | ||
| 3: './data/openseek-3_collatz_conjecture.json', | ||
| 4: './data/openseek-4_conala_concat_strings.json', | ||
| 5: './data/openseek-5_semeval_2018_task1_tweet_sadness_detection.json', | ||
| 6: './data/openseek-6_mnli_same_genre_classification.json', | ||
| 7: './data/openseek-7_jeopardy_answer_generation_all.json', | ||
| 8: '../data/openseek-8_kernel_generation.json', | ||
| 1: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-1_closest_integers.json', | ||
| 2: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-2_count_nouns_verbs.json', | ||
| 3: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-3_collatz_conjecture.json', | ||
| 4: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-4_conala_concat_strings.json', | ||
| 5: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-5_semeval_2018_task1_tweet_sadness_detection.json', | ||
| 6: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-6_mnli_same_genre_classification.json', | ||
| 7: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-7_jeopardy_answer_generation_all.json', | ||
| 8: '/root/OpenSeek/openseek/competition/LongContext-ICL-Annotation/data/openseek-8_kernel_generation.json', | ||
| } | ||
|
|
||
| def parser_args(): | ||
|
|
@@ -30,7 +30,7 @@ def parser_args(): | |
| default='../outputs/', | ||
| help='Prefix path to save the evaluation logs.') | ||
| parser.add_argument('--tokenizer_path', type=str, | ||
| default='/share/project/wuhaiming/spaces/data_agent/OpenSeek-main/openseek/competition/LongContext-ICL-Annotation/src/Qwen3-4B') | ||
| default='/root/Qwen3-4B') | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| args = parser.parse_args() | ||
| return args | ||
|
|
||
|
|
@@ -48,16 +48,14 @@ def evaluate(task_id:int, | |
|
|
||
| task_name = task_dict['task_name'] | ||
| task_description = task_dict['Definition'][0] | ||
| icl_examples = task_dict['examples'][:100] | ||
| icl_examples = task_dict['examples'][:50] | ||
| test_samples = task_dict['test_samples'] | ||
|
|
||
| version = 1 | ||
| output_file = f'{log_path_prefix}openseek-{task_id}-v{version}.jsonl' | ||
| # The evaluation platform currently expects the submission filename to be | ||
| # exactly openseek-{task_id}-v1.jsonl. | ||
| output_file = f'{log_path_prefix}openseek-{task_id}-v1.jsonl' | ||
| output_path = os.path.dirname(output_file) | ||
| os.makedirs(output_path, exist_ok=True) | ||
| while os.path.exists(output_file): | ||
| version += 1 | ||
| output_file = f'{log_path_prefix}openseek-{task_id}-v{version}.jsonl' | ||
| with open(output_file, 'w') as f: | ||
| pass | ||
|
|
||
|
|
@@ -79,14 +77,14 @@ def evaluate(task_id:int, | |
| # if tokenized_input['input_ids'].shape[1] > max_input_length: | ||
| # test_record['prediction'] = None | ||
| # else: | ||
| # prediction = annotate(input_prompt) | ||
| # prediction = annotate(input_prompt, task_id) | ||
| # test_record['prediction'] = prediction | ||
| prediction = annotate(input_prompt) | ||
| prediction = annotate(input_prompt, task_id) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Toggling the active annotation function to To ensure compatibility, please update the signature of |
||
| test_record['prediction'] = prediction | ||
| with open(output_file, 'a') as f: | ||
| f.write(json.dumps(test_record)+'\n') | ||
|
|
||
| if __name__ == '__main__': | ||
| args = parser_args() | ||
| qwen_tokenizer = AutoTokenizer.from_pretrained(args.tokenizer_path) | ||
| evaluate(args.task_id, qwen_tokenizer, args.max_input_length, args.log_path_prefix) | ||
| evaluate(args.task_id, qwen_tokenizer, args.max_input_length, args.log_path_prefix) | ||
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -158,7 +158,7 @@ def select_examples(all_examples: list[dict], task_description: str, text2annota | |||||||
| """ | ||||||||
| # 初始化Qwen3-4B的tokenizer(自动下载/加载千问3-4B的分词器) | ||||||||
| # 若本地已下载模型,可替换为本地路径,如 "./qwen3-4b" | ||||||||
| tokenizer = AutoTokenizer.from_pretrained("/share/project/wuhaiming/spaces/data_agent/OpenSeek-main/openseek/competition/LongContext-ICL-Annotation/src/Qwen3-4B", trust_remote_code=True) | ||||||||
| tokenizer = AutoTokenizer.from_pretrained("/root/Qwen3-4B", trust_remote_code=True) | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hardcoding the absolute path
Suggested change
|
||||||||
|
|
||||||||
| # 最大上下文长度限制(Qwen3-4B的上下文窗口默认是8k/32k,可根据实际调整) | ||||||||
| target_length = 8192 # 若需严格适配Qwen3-4B,建议改为8192(8k) | ||||||||
|
|
@@ -217,8 +217,6 @@ def count_answer(text: str) -> tuple[list, dict]: | |||||||
| max_count = max(content_counter.values()) | ||||||||
| answer = [content for content, count in content_counter.items() if count == max_count] | ||||||||
|
|
||||||||
| if (len(answer[0]) >= 100): | ||||||||
| return None | ||||||||
| return answer[0] | ||||||||
|
|
||||||||
|
|
||||||||
|
|
@@ -235,7 +233,7 @@ def annotate_nvidia(input_prompt:str)->list[str]: | |||||||
| data = { | ||||||||
| "model": "../Qwen3-4B", | ||||||||
| "prompt": input_prompt, | ||||||||
| "max_tokens": 10_000, # max_token = 10k | ||||||||
| "max_tokens": 1024, # max_token = 10k | ||||||||
| } | ||||||||
|
|
||||||||
| try: | ||||||||
|
|
@@ -248,7 +246,7 @@ def annotate_nvidia(input_prompt:str)->list[str]: | |||||||
| prediction = count_answer(whole_result) | ||||||||
| return prediction | ||||||||
|
|
||||||||
| def annotate_ascend(input_prompt:str)->list[str]: | ||||||||
| def annotate_ascend(input_prompt:str, task_id:int=None)->list[str]: | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While adding Please update |
||||||||
| """ | ||||||||
| Annotate the unlabeled data using an LLM API (Huawei Ascend). | ||||||||
| prompts: | ||||||||
|
|
@@ -258,7 +256,7 @@ def annotate_ascend(input_prompt:str)->list[str]: | |||||||
| import openai | ||||||||
| openai.api_key = "EMPTY" | ||||||||
| openai.base_url = "http://localhost:9010/v1/" | ||||||||
| model = "Qwen3-4B-ascend-flagos" | ||||||||
| model = "/root/Qwen3-4B" | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||||||||
|
|
||||||||
| messages = [ | ||||||||
| {"role": "system", "content": "You are a helpful assistant."}, | ||||||||
|
|
@@ -269,9 +267,16 @@ def annotate_ascend(input_prompt:str)->list[str]: | |||||||
| messages=messages, | ||||||||
| temperature=0.7, | ||||||||
| top_p=0.95, | ||||||||
| max_tokens=10_000, | ||||||||
| max_tokens=1024, | ||||||||
| stream=False, | ||||||||
| ) | ||||||||
| whole_result = response.choices[0].message.content | ||||||||
|
|
||||||||
| # Special handling for Task 8 (code generation): return raw model output | ||||||||
| # Task 8 generates Triton code without <label> tags | ||||||||
| if task_id == 8: | ||||||||
| return whole_result.strip() | ||||||||
|
|
||||||||
| # For other tasks, extract label-tagged content | ||||||||
| prediction = count_answer(whole_result) | ||||||||
| return prediction | ||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| # Python依赖环境配置 | ||
| # 适用于 Huawei Ascend 910C 环境 | ||
|
|
||
| # 基础依赖 | ||
| numpy>=1.24.0 | ||
| torch>=2.8.0 | ||
| torch_npu>=2.8.0 | ||
|
Comment on lines
+6
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. PyTorch version |
||
| torchvision>=0.23.0 | ||
|
|
||
| # 模型与推理 | ||
| transformers>=4.57.0 | ||
| vllm_ascend>=0.13.0rc1 | ||
|
|
||
| # 工具库 | ||
| tqdm>=4.67.0 | ||
| requests>=2.32.0 | ||
| openai>=2.14.0 | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hardcoding absolute paths like
/root/OpenSeek/...makes the codebase non-portable and will break on any other environment. It is highly recommended to resolve these paths dynamically relative to the current file's directory.