PolyOpus / README.md
hkqiu's picture
Update README.md
6efe172 verified
|
Raw History Blame Contribute Delete
2.43 kB
---
language:
- en
- zh
library_name: transformers
pipeline_tag: text-generation
base_model: deepseek-ai/deepseek-llm-7b-chat
tags:
- chemistry
- polymers
- materials-science
- text-generation
---
# PolyOpus
PolyOpus is a polymer-specialized language model built by supervised fine-tuning of [DeepSeek-LLM-7B-Chat](https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat). It serves as the specialist model in the [PolySea framework](https://github.com/hkqiu/PolySea).
## Supported tasks
- Predict glass-transition temperature, crystalline band gap and atomization energy.
- Classify polyimide heat resistance using Tg-derived categories.
- Generate polymer structures for a specified band-gap target.
- Answer polymer-science questions in English or Chinese.
For property prediction, provide the requested property and a polymer repeat-unit SMILES. The `*` symbols indicate polymerization attachment points.
## Model details
- Approximately 7B parameters; `LlamaForCausalLM` architecture.
- A complete merged FP16 checkpoint in three Safetensors shards. No separate LoRA adapter is required for inference.
- A 4,096-token context window, with the tokenizer and chat template included.
## Quick start
Install `torch`, `transformers` and `accelerate`, then run:
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "hkqiu/PolyOpus"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.float16, device_map="auto"
)
messages = [{
"role": "user",
"content": "Predict the Tg of the following SMILES: *CC*"
}]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer(
prompt, add_special_tokens=False, return_tensors="pt"
).to(model.device)
with torch.inference_mode():
outputs = model.generate(
**inputs, max_new_tokens=128, do_sample=True,
temperature=0.7, top_p=0.95,
pad_token_id=tokenizer.eos_token_id,
)
answer = outputs[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(answer, skip_special_tokens=True))
```
Predictions and generated structures require independent validation before use in experiments or materials selection.
## Links
- [PolySea source code](https://github.com/hkqiu/PolySea)
- [Base model](https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat)