/ Модель

Характеристики

Контекст
131 072 токена
Параметры
31,6 млрд
Размер весов
64 ГБ
Лицензия
Apache 2.0
Архитектура
iquestcoder · dense
Библиотека
transformers
Опубликована
26 мар 2026

IndustrialCoder-Thinking

Генерация текстаТекст → текст5 профессий

Плотная языковая модель на 31,6 млрд параметров для генерации и анализа инженерного кода с пошаговым режимом рассуждений.

180скачиваний за 30 дней7лайковвеса обновлены26 мар 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

IndustrialCoder-Thinking — диалоговая языковая модель для генерации кода и пошагового решения сложных инженерных задач; карточка описывает её как reasoning-вариант семейства InCoder, разработанный Multilingual-Multimodal-NLP. Модель использует плотную архитектуру IQuestCoderForCausalLM с 31,6 млрд параметров и контекстом до 131 072 токенов. В README указаны 64 слоя и размер скрытого представления 5 120.

Модель предназначена для генерации, отладки и оптимизации кода, в том числе RTL для проектирования микросхем, GPU-ядер на CUDA и Triton, а также встроенного ПО. В режиме thinking она формирует промежуточный ход решения в тегах `...`, а режим без рассуждений подходит для более простых запросов. Карточка приводит результаты на общих и отраслевых бенчмарках, но не описывает независимую проверку этих оценок.

Модель принимает текстовые запросы и выдаёт текст, включая код. Основной язык карточки — код; поддерживаемые естественные языки не перечислены. Указаны интерфейс чата и интерфейс вызова инструментов. Лицензия — Apache-2.0.

README предупреждает, что рассуждения могут содержать ошибки, а сгенерированный код — быть некомпилируемым, функционально неверным или неоптимальным; отдельно отмечены пробелы в знаниях API для встроенного ПО. Код следует проверять и тестировать перед использованием.

Сценарии применения

  • генерация и отладка RTL-модулей
  • проектирование и проверка цифровых схем
  • оптимизация GPU-ядер на CUDA и Triton
  • диагностика встроенного ПО
  • генерация кода по многошаговым инженерным требованиям

Ограничения

Промежуточные рассуждения могут содержать ошибки, а код — быть функционально неверным или неоптимальным; для простых запросов режим рассуждений добавляет задержку. README также отмечает возможные пробелы в знаниях API для встроенного ПО и рекомендует проверять и тестировать результат.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

InCoder-32B-Thinking: Reasoning Code Model for Industrial Scenarios

HuggingFace GitHub arXiv License

Model Summary

InCoder-32B-Thinking is the reasoning variant of the InCoder family. It extends InCoder-32B with chain-of-thought reasoning via <think>...</think> tags, enabling step-by-step problem decomposition before generating code. This is particularly effective for complex industrial tasks that require multi-step reasoning — debugging RTL modules, optimizing GPU kernels, or diagnosing embedded firmware issues.

For the instruction-tuned variant (without thinking), see IndustrialCoder. For the pre-trained base model, see IndustrialCoder-Base.


Key Results

General Code Benchmarks

BenchmarkInCoder-32BInCoder-32B-Thinking
HumanEval+89.691.5
MBPP+78.380.1
BigCodeBench (Full)49.851.2
LiveCodeBench (Pass@1)49.1452.3

Industrial Code Benchmarks

BenchmarkDomainInCoder-32BInCoder-32B-Thinking
VeriScope ScoreChip Design80.782.3
CAD-Coder Compile (%)3D Modeling82.084.0
KernelBench L1 (%)GPU Optimization22.224.0

The thinking variant shows consistent improvements across both general and industrial benchmarks, with the largest gains on tasks requiring multi-step reasoning.


Model Architecture

Same architecture as InCoder-32B, with thinking-aware post-training:

HyperparameterValue
Parameters~32B
Layers64
Hidden Size5,120
Attention Heads40 (8 KV heads, GQA)
Max Context Length131,072 (128K)
Positional EncodingRoPE (θ = 500,000)
PrecisionBFloat16

How Thinking Mode Works

InCoder-32B-Thinking generates a reasoning trace inside <think>...</think> tags before producing the final answer. This allows the model to:

  1. Decompose complex problems into sub-tasks
  2. Reason about constraints, edge cases, and hardware semantics
  3. Plan the solution structure before writing code

Example output:

<think>
The user wants a UART transmitter module. Let me think through the design:
1. Need a state machine: IDLE -> START_BIT -> DATA_BITS -> STOP_BIT
2. 8N1 means: 8 data bits, no parity, 1 stop bit
3. Need a baud rate counter derived from the clock frequency
4. Shift register to serialize the 8-bit data LSB first
</think>

module uart_tx (
    input wire clk,
    ...

You can disable thinking mode to get direct answers (behaves like the instruct variant):

text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True,
    enable_thinking=False
)

Usage

Installation

pip install transformers accelerate

Thinking Mode (default)

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "Multilingual-Multimodal-NLP/IndustrialCoder-Thinking"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

messages = [
    {"role": "user", "content": "Optimize this CUDA kernel for better memory coalescing:\n__global__ void add(float *a, float *b, float *c, int N) {\n    int i = threadIdx.x;\n    if (i < N) c[i] = a[i] + b[i];\n}"}
]

# Thinking mode (default) — model reasons before answering
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer([text], return_tensors="pt").to(model.device)

with torch.no_grad():
    out = model.generate(**inputs, max_new_tokens=4096, temperature=0.6, top_p=0.85, top_k=20)

output = tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=False)

# Parse thinking and response
if "</think>" in output:
    thinking = output.split("</think>")[0].replace("<think>\n", "").strip()
    response = output.split("</think>")[1].strip()
    print(f"Thinking:\n{thinking}\n\nResponse:\n{response}")
else:
    print(output)

Non-Thinking Mode

# Disable thinking — direct answer without reasoning trace
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True,
    enable_thinking=False
)

With Tool Calls

tools = [{
    "type": "function",
    "function": {
        "name": "run_verilog_sim",
        "description": "Run Verilog simulation with Icarus Verilog",
        "parameters": {
            "type": "object",
            "properties": {
                "code": {"type": "string", "description": "Verilog source code"},
                "testbench": {"type": "string", "description": "Testbench code"}
            }
        }
    }
}]

text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True, tools=tools
)

Deployment with vLLM

vllm serve Multilingual-Multimodal-NLP/IndustrialCoder-Thinking \
    --tensor-parallel-size 4 --max-model-len 32768 --trust-remote-code

Recommended Sampling Parameters

Use casetemperaturetop_ptop_kmax_new_tokens
Thinking (default)0.60.85208192
Non-thinking / precise0.20.95—4096

Model Family

ModelTypeHuggingFace
InCoder-32B-BasePre-trained🤗 IndustrialCoder-Base
InCoder-32BInstruct🤗 IndustrialCoder
InCoder-32B-ThinkingReasoning🤗 IndustrialCoder-Thinking
InCoder-32B-FP8FP8 Quantized🤗 IndustrialCoder-32B-FP8
InCoder-32B-AWQ-INT4AWQ INT4🤗 IndustrialCoder-32B-AWQ-INT4
InCoder-32B-GPTQ-INT4GPTQ INT4🤗 IndustrialCoder-32B-GPTQ-INT4

Limitations & Disclaimers

  • The thinking trace may occasionally contain reasoning errors or hallucinated constraints — always verify the final code output.
  • For simple tasks, thinking mode adds latency; use enable_thinking=False for straightforward generation.
  • Based on failure analysis, the model may struggle with:
    • API Knowledge: Linker errors from undefined HAL/CMSIS functions in embedded C.
    • Functional Semantics: Producing compilable but functionally incorrect RTL under complex logic scenarios.
    • Optimization: Correct but sub-optimal GPU kernel performance.

Always review and test generated code in a sandboxed environment. Industrial code (RTL, embedded firmware, GPU kernels) requires expert review before deployment.


Citation

@article{yang2026incoder,
  title={InCoder-32B: Code Foundation Model for Industrial Scenarios},
  author={Yang, Jian and Zhang, Wei and Wu, Jiajun and Cheng, Junhang and Guo, Shawn
          and Wang, Haowen and Gu, Weicheng and Du, Yaxin and Li, Joseph and Xu, Fanglin
          and others},
  journal={arXiv preprint arXiv:2603.16790},
  year={2026}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
IQuestCoderForCausalLM
Ревизия весов
dc2c482

0 моделей