preductor commited on
Commit
25dd07c
·
verified ·
1 Parent(s): 17acad4

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +161 -3
README.md CHANGED
@@ -1,3 +1,161 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Description
2
+
3
+ **MetalGPT-1** is a model built upon the Qwen3-32b and incorporates both continual pre-training and supervised fine-tuning.
4
+
5
+ ---
6
+
7
+ ### HF Usage (Transformers)
8
+
9
+ ```python
10
+ from transformers import AutoTokenizer, AutoModelForCausalLM
11
+ import torch
12
+
13
+ torch.manual_seed(42)
14
+
15
+ model_name = "nn-tech/MetalGPT-1"
16
+
17
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
18
+ model = AutoModelForCausalLM.from_pretrained(
19
+ model_name,
20
+ torch_dtype="bfloat16", # или "auto" в зависимости от окружения
21
+ device_map="auto",
22
+ )
23
+
24
+ prompt = (
25
+ "Назови плюсы и минусы хлоридной и сульфатной технологии производства никеля."
26
+ )
27
+
28
+ messages = [
29
+ {"role": "system", "content": "Ты специалист в области металлургии."},
30
+ {"role": "user", "content": prompt},
31
+ ]
32
+
33
+ text = tokenizer.apply_chat_template(
34
+ messages,
35
+ tokenize=False,
36
+ add_generation_prompt=True,
37
+ # Если в чат‑шаблоне поддерживается режим 'thinking',
38
+ # можно добавить/убрать флаг enable_thinking:
39
+ # enable_thinking=False
40
+ )
41
+
42
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
43
+
44
+ generated_ids = model.generate(
45
+ **model_inputs,
46
+ max_new_tokens=1024,
47
+ )
48
+
49
+ # Обрезаем префикс промпта
50
+ generated_ids = [
51
+ output_ids[len(input_ids):]
52
+ for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
53
+ ]
54
+
55
+ response = tokenizer.batch_decode(
56
+ generated_ids,
57
+ skip_special_tokens=True
58
+ )[0]
59
+
60
+ print(response)
61
+ ```
62
+
63
+ ### Output
64
+
65
+ ```text
66
+ <think>
67
+ Хорошо, мне нужно разобраться в плюсах и минусах хлоридной и сульфатной технологий производства никеля. Начну с того, что вспомню, что эти технологии относятся к гидрометаллургическим процессам, то есть используют водные растворы для извлечения металлов.
68
+
69
+ Сначала подумаю о хлоридной технологии. Возможно, она связана с использованием соляной кислоты или хлорида натрия. Преимущества могут быть в более высокой растворимости некоторых соединений, что позволяет эффективно извлекать никель. Также, возможно, процесс работает при более низких температурах, что экономит энергию. Но есть и недостатки: коррозионная активность хлора может быть проблемой, оборудование должно быть из специальных материалов, что увеличивает стоимость. Также выбросы хлора в атмосферу опасны, требуют сложных систем очистки.
70
+
71
+ Теперь сульфатная технология. Здесь, наверное, используется серная кислота. Плюсы: серная кислота дешевле и доступнее, чем соляная. Процесс может быть более стабильным, меньше коррозии по сравнению с хлоридом. Минусы: возможно, более низкая скорость реакции, необходимость в более высоких температурах, что увеличивает энергозатраты. Также образование сульфатов, которые могут быть менее селективными, что приводит к большему количеству побочных продуктов.
72
+
73
+ Нужно проверить, не путаю ли я процессы. Например, в хлоридной технологии может использоваться хлорирование для перевода никеля в раствор, тогда как в сульфатной — кислотное выщелачивание. Также важно учесть, что хлоридные процессы могут быть более эффективны для определенных типов руд, например, с высоким содержанием железа, так как хлориды железа легко растворяются. В то время как сульфатные процессы могут быть предпочтительнее для руд с низким содержанием железа, чтобы избежать загрязнения раствора.
74
+
75
+ Еще момент: в хлоридной технологии возможно использование электролиза для получения чистого никеля, тогда как в сульфатной — тоже, но с другими условиями. Также стоит упомянуть экологические аспекты: хлоридные процессы могут быть более токсичными, требуют строгого контроля выбросов, тогда как сульфатные — меньше проблем с выбросами, но больше с отходами кислоты.
76
+
77
+ Нужно структурировать ответ, разделив на плюсы и минусы для каждой технологии, возможно, в виде списков. Убедиться, что информация точная и не противоречит друг другу. Проверить, нет ли ошибок в понимании процессов. Например, в хлоридной технологии может быть этап хлорирования, который требует высоких температур, что увеличивает энергозатраты, но позволяет извлекать никель из сложных руд. В сульфатной — возможно, более простой процесс, но менее эффективный для определенных типов сырья.
78
+
79
+ Также стоит отметить, что выбор технологии зависит от типа руды, наличия инфраструктуры, экологических норм и экономических факторов. Возможно, в некоторых регионах предпочтительнее одна технология, в других — другая. Важно подчеркнуть, что обе технологии имеют свои ниши и применяются в зависимости от конкретных условий.
80
+ </think>
81
+
82
+ Плюсы и минусы хлоридной и сульфатной технологий производства никеля
83
+
84
+ Хлоридная технология
85
+ Плюсы:
86
+ 1. Высокая селективность и эффективность извлечения — хлориды никеля хорошо растворяются в воде, что позволяет эффективно извлекать металл из сложных руд, включая сульфидные и оксидные.
87
+ 2. Возможность работы при низких температурах — некоторые этапы (например, выщелачивание) могут проводиться при умеренных температурах, снижая энергозатраты.
88
+ 3. Подходит для руд с высоким содержанием железа — хлориды железа легко растворяются, что упрощает разделение никеля от примесей.
89
+ 4. Возможность получения чистого никеля — электролиз в хлоридных растворах позволяет получать высокочистый никель.
90
+
91
+ Минусы:
92
+ 1. Коррозионная активность — хлоридные растворы агрессивны, требуют использования дорогостоящих материалов (например, титан, нержавеющая сталь).
93
+ 2. Экологические риски — выбросы хлора и его соединений токсичны, требуют сложных систем очистки и контроля.
94
+ 3. Высокая стоимость реагентов — соляная кислота и хлорид натрия дороже, чем серная кислота.
95
+ 4. Ограниченная применимость — менее эффективна для руд с низким содержанием никеля или высоким содержанием кремнезема.
96
+
97
+ Сульфатная технология
98
+ Плюсы:
99
+ 1. Дешевизна реагентов — серная кислота — один из самых доступных и дешёвых реагентов.
100
+ 2. Меньшая коррозионная активность — сульфатные растворы менее агрессивны, чем хлоридные, что снижает износ оборудования.
101
+ 3. Экологическая безопасность — выбросы сульфатов менее токсичны, проще поддаются контролю.
102
+ 4. Широкая применимость — эффективна для большинства типов руд, особенно оксидных и низкосульфидных.
103
+
104
+ Минусы:
105
+ 1. Низкая селективност�� — сульфаты железа и других примесей могут мешать извлечению никеля, требуя дополнительных стадий очистки.
106
+ 2. Высокие энергозатраты — некоторые процессы (например, выщелачивание) требуют нагревания, что увеличивает расход энергии.
107
+ 3. Сложность регенерации кислоты — серная кислота может разлагаться, требуя её частой замены.
108
+ 4. Ограниченная эффективность для сложных руд — менее эффективна для руд с высоким содержанием железа или кремнезема.
109
+
110
+ Итог:
111
+ - Хлоридная технология предпочтительна для сложных руд с высоким содержанием никеля и железа, но требует строгого контроля коррозии и выбросов.
112
+ - Сульфатная технология — более экономична и экологична, но менее эффективна для сложных руд. Выбор зависит от типа сырья, инфраструктуры и экологических норм.
113
+ ```
114
+
115
+ ---
116
+
117
+ ### vLLM Usage
118
+
119
+ Пример использования через `vLLM` (см. также `vllm_local.py` в репозитории):
120
+
121
+ ```python
122
+ from transformers import AutoTokenizer
123
+ from vllm import LLM, SamplingParams
124
+
125
+ model_name = "nn-tech/MetalGPT-1"
126
+
127
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
128
+ llm = LLM(model=model_name, max_model_len=8192)
129
+
130
+ sampling_params = SamplingParams(
131
+ temperature=0.7,
132
+ repetition_penalty=1.05,
133
+ top_p=0.8,
134
+ top_k=70,
135
+ max_tokens=512,
136
+ )
137
+
138
+ prompt = (
139
+ "Назови плюсы и минусы хлоридной и сульфатной технологии производства никеля."
140
+ )
141
+
142
+ messages = [
143
+ {"role": "system", "content": "Ты специалист в области металлургии."},
144
+ {"role": "user", "content": prompt},
145
+ ]
146
+
147
+ prompt_token_ids = tokenizer.apply_chat_template(
148
+ messages,
149
+ add_generation_prompt=True,
150
+ )
151
+
152
+ outputs = llm.generate(
153
+ prompt_token_ids=prompt_token_ids,
154
+ sampling_params=sampling_params,
155
+ )
156
+
157
+ generated_text = [output.outputs[0].text for output in outputs]
158
+ print(generated_text[0])
159
+ ```
160
+
161
+