Text Generation
Transformers
TensorBoard
Safetensors
biology
genomics
rna
sequence-generation
regression
reinforcement-learning
git-lfs
Instructions to use JoyXiangLab/rnaseek-full with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JoyXiangLab/rnaseek-full with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="JoyXiangLab/rnaseek-full")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("JoyXiangLab/rnaseek-full", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use JoyXiangLab/rnaseek-full with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "JoyXiangLab/rnaseek-full" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "JoyXiangLab/rnaseek-full", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/JoyXiangLab/rnaseek-full
- SGLang
How to use JoyXiangLab/rnaseek-full with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "JoyXiangLab/rnaseek-full" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "JoyXiangLab/rnaseek-full", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "JoyXiangLab/rnaseek-full" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "JoyXiangLab/rnaseek-full", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use JoyXiangLab/rnaseek-full with Docker Model Runner:
docker model run hf.co/JoyXiangLab/rnaseek-full
| from __future__ import annotations | |
| import sys, os, json, time | |
| os.environ['CC'] = '/opt/rh/gcc-toolset-9/root/usr/bin/gcc' | |
| os.environ['CXX'] = '/opt/rh/gcc-toolset-9/root/usr/bin/g++' | |
| os.environ["PATH"] += os.pathsep + os.path.expanduser("~/.local/bin") | |
| os.environ["PATH"] += os.pathsep + "/rhome/jyang311/shared/jyangfile/jyangfile/trainingmaterial/exllamav2" | |
| os.environ["MAX_JOBS"] = '16' | |
| from exllamav2 import ExLlamaV2, ExLlamaV2Config, ExLlamaV2Cache, ExLlamaV2Tokenizer | |
| from exllamav2.generator import ExLlamaV2DynamicGenerator, ExLlamaV2DynamicJob, ExLlamaV2Sampler | |
| import torch | |
| import torch.nn.functional as F | |
| import matplotlib.pyplot as plt | |
| import matplotlib.font_manager as fm | |
| import os | |
| import math | |
| from tqdm import tqdm | |
| import json | |
| def calculate_perplexity(model, tokenizer, input_ids) -> torch.Tensor: | |
| # Tokenize the input text | |
| target_ids = input_ids[:, 1:] | |
| # Compute loss | |
| with torch.no_grad(): | |
| logits = model.forward(input_ids).float() | |
| logprobs = F.log_softmax(logits, dim=-1).to('cuda') | |
| target_ids = target_ids.to('cuda') | |
| target_logprobs = logprobs[:, :-1].gather(dim=-1, index=target_ids.unsqueeze(-1)).squeeze(-1) | |
| nll = -target_logprobs | |
| # Perplexity is exp(loss) | |
| perplexity = nll.exp() | |
| return nll | |
| def calculate_stdev(numbers): | |
| if len(numbers) < 2: | |
| raise ValueError("At least two numbers are required to calculate the standard deviation.") | |
| mean = sum(numbers) / len(numbers) | |
| variance = sum((x - mean) ** 2 for x in numbers) / (len(numbers) - 1) | |
| stdev = math.sqrt(variance) | |
| return stdev | |
| import json | |
| with open('clustered_embeded_full.json') as tmpinputCollector: | |
| col = json.load(tmpinputCollector) | |
| modelDir = "../Mistral-Large-Instruct-2407-123B-exl2/" | |
| max_response_len = 1024 | |
| cache_size = 100*1024 # Adjust as needed, 100k seems to be a safe size for L3-8B on a single 24 GB GPU | |
| max_rows = 10000 | |
| config = ExLlamaV2Config(modelDir) | |
| tokenizer = ExLlamaV2Tokenizer(config) | |
| model = ExLlamaV2(config) | |
| cache = ExLlamaV2Cache(model, max_seq_len = cache_size, lazy = True) | |
| model.load_autosplit(cache) | |
| def getPpl(input_text): | |
| input_ids = tokenizer.encode(input_text) | |
| # Calculate perplexity | |
| perplexity = calculate_perplexity(model, tokenizer, input_ids) | |
| vocab = tokenizer.get_id_to_piece_list() | |
| tokens = [] | |
| ppls = [] | |
| for idx in range(input_ids.shape[-1]): | |
| token = input_ids[0, idx].item() | |
| text = vocab[token] | |
| ppl = float("inf") if idx == 0 else perplexity[0, idx - 1].item() | |
| tokens.append(text) | |
| ppls.append(ppl) | |
| return tokens, ppls | |
| with open('isolatedMiddle.json') as tmpinputCollector: | |
| res = json.load(tmpinputCollector) | |
| i=0 | |
| for sample in tqdm(res): | |
| premise = sample['premise'] | |
| conclusion = sample['conclusion'] | |
| for middle in sample['middle4conclusionppl']: | |
| if sample['middle4conclusionppl'][middle] !='': | |
| continue | |
| #print(middle) | |
| finalInput = premise.strip()+' '+middle.strip()+' '+conclusion | |
| #print(finalInput) | |
| tokens, ppls = getPpl(finalInput) | |
| lenofConclusion = len(tokenizer.encode(conclusion)[0]) | |
| #print(tokenizer.encode(conclusion)[0]) | |
| concPpl = ppls[-lenofConclusion:] | |
| # print(sum(concPpl) / len(concPpl)) | |
| sample['middle4conclusionppl'][middle] = concPpl | |
| # print(len(concPpl)) | |
| i+=1 | |
| if i%3000 != 0: | |
| continue | |
| with open("isolatedMiddle.json", "w") as outfile: | |
| json.dump(res, outfile) | |