Views
No views yet
pip install autoawq -q
pip install --upgrade torch -q
pip install --upgrade transformers -qKeyError: 'qwen2'AttributeError: module 'torch.library' has no attribute 'register_fake'1from transformers import Qwen2ForCausalLM, AutoConfig, AutoTokenizer
2import torch
3
4class RuQwen2ForCausalLM(Qwen2ForCausalLM):
5 def __init__(self, config):
6 super().__init__(config)
7
8 if hasattr(self, "lm_head") and isinstance(self.lm_head, torch.nn.Linear):
9 if self.lm_head.bias is None:
10 self.config.add_bias_to_lm_head = True
11 self._add_bias_to_lm_head()
12
13 def _add_bias_to_lm_head(self):
14 """Добавляет bias в lm_head, если его нет."""
15 old_lm_head = self.lm_head
16 # lm_head с bias
17 self.lm_head = torch.nn.Linear(
18 old_lm_head.in_features,
19 old_lm_head.out_features,
20 dtype=self.model.dtype,
21 bias=True,
22 )
23 with torch.no_grad():
24 self.lm_head.weight = old_lm_head.weight
25 torch.nn.init.zeros_(self.lm_head.bias)
26
27 @classmethod
28 def from_pretrained(cls, model_name, *args, **kwargs):
29 # Загружает модель с конфигурацией
30 model = super().from_pretrained(model_name, *args, **kwargs)
31
32 if hasattr(model.config, "add_bias_to_lm_head") and not model.config.add_bias_to_lm_head:
33 model._add_bias_to_lm_head()
34
35 return model
36
37 def save_pretrained(self, save_directory, *args, **kwargs):
38 self.config.add_bias_to_lm_head = self.lm_head.bias is not None
39 super().save_pretrained(save_directory, *args, **kwargs)1def generate(messages):
2 input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
3 output = model.generate(input_ids,
4 max_new_tokens=1024,
5 do_sample=False,
6 temperature=None,
7 top_k=None,
8 top_p=None)
9 generated_text = tokenizer.decode(output[0], skip_special_tokens=False)#.split('<|im_start|>assistant')[1]
10 return generated_text
11
12model_name = 'FractalGPT/RuQwen2.5-3B-Instruct-AWQ'
13model = RuQwen2ForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
14tokenizer = AutoTokenizer.from_pretrained(model_name)
15
16prompt = "Классификация медицинских терминов"
17messages = [
18 {"role": "system", "content": "You are RuQwen, created by FractalGPT. You are a helpful assistant."},
19 {"role": "user", "content": prompt}
20]
21
22print(generate(messages))Классификация медицинских терминов играет ключевую роль в медицине и информационных системах. Вот несколько основных подходов к классификации медицинских терминов:
1. **International Classification of Diseases (ICD)**: Это стандартная система классификации заболеваний и причин смерти, разработанная ВОЗ. Она используется во многих странах для классификации медицинских случаев.
2. **Medical Subject Headings (MeSH)**: Это система классификации медицинской литературы, разработанная National Library of Medicine (NLM). MeSH помогает организовать информацию о медицинских исследованиях и статьях.
3. **Systematized Nomenclature of Medicine (SNOMED)**: SNOMED International предоставляет глубоко специализированную систему классификации медицинских терминов. Она предназначена для использования в больницах, клиниках и других медицинских учреждениях.
4. **Unified Medical Language System (UMLS)**: Это расширяемая система классификации медицинских терминов, которая объединяет данные из различных источников, таких как ICD-10, MeSH и другие.
5. **Clinical Terms**: Это система классификации медицинских терминов, разработанная для использования в клинических системах управления пациентами (EHR).
6. **Pharmaceutical Product Names (PPNs)**: Это система классификации названий лекарственных препаратов, разработанная для обеспечения уникальности и стандартизации названий.
Каждая из этих систем имеет свои особенности и области применения. Например, ICD主要用于疾病和死亡原因的分类,而MeSH主要用于医学文献的分类。SNOMED则提供更详细的医疗术语分类,适用于临床应用。
Также существуют специализированные системы для конкретных областей медицины, такие как терминология для хирургии, терапии, педиатрии и т.д.
Классификация медицинских терминов позволяет упорядочить информацию, сделать ее доступной для широкого круга пользователей и обеспечивает стандартизацию терминологии, что важно для точного понимания и эффективного общения между врачами, пациентами и медицинскими работниками.Классификация медицинских терминов играет ключевую роль в медицине и информационных системах. Вот несколько основных подходов к классификации медицинских терминов:
1. **International Classification of Diseases (ICD)**: Это стандартная система классификации заболеваний и причин смерти, разработанная ВОЗ. Она используется во многих странах для классификации медицинских случаев.
2. **Medical Subject Headings (MeSH)**: Это система классификации медицинской литературы, разработанная National Library of Medicine (NLM). MeSH помогает организовать информацию о медицинских исследованиях и статьях.
3. **Systematized Nomenclature of Medicine (SNOMED)**: SNOMED International предоставляет глубоко специализированную систему классификации медицинских терминов. Он включает термины для диагностики, лечения, тестирования и других аспектов медицинского обслуживания.
4. **Unified Medical Language System (UMLS)**: Это система метаданных, которая объединяет терминологические данные из различных источников, таких как ICD-10, MeSH и другие системы классификации.
5. **Clinical Terms**: Это терминология, используемая в клинической практике, которая может включать термины из SNOMED, ICD и других систем.
6. **Pharmacopoeias**: Эти документы обычно содержат классификацию лекарственных препаратов и их применения.
Каждая из этих систем имеет свои особенности и области применения. Например, ICD используется для классификации заболеваний и причин смерти, в то время как MeSH и SNOMED используются для классификации медицинской информации и терминологии соответственно.
Также существуют более специализированные системы классификации, такие как терминология для конкретных областей медицины (например, терминология для хирургии или терминология для педиатрии).
Классификация медицинских терминов позволяет упорядочить информацию, сделать ее доступной для широкого круга пользователей и обеспечивает стандартизацию терминологии, что важно для эффективного общения между врачами, пациентами и другими участниками медицинского процесса.