You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

OM Self-Attribution LLM

This repository accompanies the following journal article: "Niu, Y., Qiao, X., Wu, J., & Yang, X. (2026). Internal credit and external blame: Self-attribution in operations and supply chain performance. Manufacturing & Service Operations Management, forthcoming." The study examines self-attribution in operational performance evaluation: managers may attribute strong performance to internal factors (“internal credit”) while assigning poor performance to external factors (“external blame”).

This repository releases two Low-Rank Adaptation (LoRA) adapters fine-tuned on top of LLaMA-3.1-8B-Instruct to analyze earnings call Q&A transcripts. The question adapter LLMQ classifies analyst questions as positive performance attribution, negative performance attribution, or other (non-attributional). The answer adapter LLMA classifies managerial responses as internal factors, supply chain partners, or external environment. Readers can use these adapters to classify earnings call Q&A.

Model Input Output
LLMQ Analyst question from earnings call Positive, Negative, or Other
LLMA Managerial answer from earnings call Internal factors, Supply chain partners, or External environment

Examples

Question classification

Type Definition Example
Positive The question asks about the reasons for positive operational performance. "...Fabric Care has been a good story. Volumes were particularly strong again on difficult comps. ... what you think is driving this particularly strong delivery on the Fabric Care side of the business."
Negative The question asks about the reasons for negative operational performance. "...the operating margins in the Windows business were sequentially lower, quite materially. I just wanted to get some insights into what drove this?"
Other (non-attributional) The question is not about reasons for positive or negative performance, but rather about metric clarification or forward-looking predictions. "Can you give more colors on capacity?"; "What is your outlook for inventory levels over the next few quarters?"

Answer classification

Type Definition Example
Internal factors The answer primarily attributes performance to internal factors. "...the team has done a phenomenal job in looking into fast-growing new segments. ... superior innovation and superior products. ... that's what you see in the results."
Supply chain partners The answer primarily attributes performance to supply chain partners. "...mainly behind retailer engagement. ... strong retailer engagement and the expected strong merchandising plans flow through to the consumer..."
External environment The answer primarily attributes performance to external conditions. "...There's a major crime epidemic going on, enforcement of penalties for shoplifting has been largely kind of abandoned there."

Load adapters and inference

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel

BASE_MODEL_ID = "meta-llama/Llama-3.1-8B-Instruct"
ADAPTER_REPO = "OMNLP/OM-Attribution-LLM"

tokenizer = AutoTokenizer.from_pretrained(ADAPTER_REPO, trust_remote_code=True)
if tokenizer.pad_token_id is None:
    tokenizer.pad_token_id = tokenizer.eos_token_id

def load_with_adapter(subfolder: str):
    base = AutoModelForCausalLM.from_pretrained(
        BASE_MODEL_ID,
        torch_dtype=torch.bfloat16,
        device_map="auto",
        trust_remote_code=True,
    )
    return PeftModel.from_pretrained(base, ADAPTER_REPO, subfolder=subfolder)

def classify(model, user_content: str, max_new_tokens: int = 64) -> str:
    messages = [{"role": "user", "content": user_content}]
    inputs = tokenizer.apply_chat_template(
        messages,
        add_generation_prompt=True,
        return_tensors="pt",
    )
    device = next(model.parameters()).device
    inputs = inputs.to(device)
    with torch.inference_mode():
        generated = model.generate(
            inputs,
            max_new_tokens=max_new_tokens,
            do_sample=False,
            pad_token_id=tokenizer.pad_token_id,
            eos_token_id=tokenizer.eos_token_id,
        )
    new_tokens = generated[0, inputs.shape[1] :]
    return tokenizer.decode(new_tokens, skip_special_tokens=True)

# --- LLM_Q: the Question Adapter ---
question_example = "...Fabric Care has been a good story. Volumes were particularly strong again on difficult comps. ... Just in general some perspective on what you think is driving this particularly strong delivery on the Fabric Care side of the business."
Prompts_question = """As an expert in operations management, your task is to classify whether the question is asking about the attribution of the company's performance.

# Steps #
1. Determine the topic of the question:
- If the question is related to the company's current operations management or supply chain performance, proceed to Step 2.
- If it does not, classify the question as 'Others'.
2. Check if the question seeks causes for performance:
- If the question asks about the reason for the performance mentioned (positive or negative), proceed to Step 3.
- If it does not, classify it as 'Others'.
3. Classify based on performance assessment:
- If the performance mentioned is positive, classify the question as 'Positive'.
- If the performance mentioned is negative, classify the question as 'Negative'.
- For all other cases, classify the question as 'Others'.

# Examples #
Input categorized as 'Positive':
1. "The company has been pretty consistent towards outperformance relative to the light vehicle production in your market. Could you elaborate a little bit on some of the forces that are driving that?"
2. "And then if I could just squeeze in another quick one, on the transaction count accelerating in the period or at least as a component of the comps. As you look at that, what do you think is causing the frequency to go up?"
3. "And then secondly, Clarence, when you look at the growth rate you've just delivered on domestic intermodal, how much of that would you attribute to these sort of new hours of service rules? Could folks even move their business yet to a rail? Does that take a little bit longer?"

Input categorized as 'Negative':
1. "On inventory, I did see that inventory is actually ticked down in the third quarter where usually it does have a significant bump. I was wondering are there any issues over there, the different dynamics that might have an influence to tick down."
2. "And just on the inventory. We noticed that you restated the levels for last year, there's an $11 million difference. Is there a reason for that?"
3. "In Q2, because you are going with less raw material revenue, right, because of this whole transition you're reporting?"

Input categorized as 'Others':
1. "Can you give more colors on capacity?"
2. "How do you accelerate the business, can you help us frame the size?"
3. "What's the production composition there, gas versus oil?"

# Output Format #
Please directly return the result.
"""

question_user_content = f"{Prompts_question.strip()}\n\nQuestion: {question_example.strip()}"

model_question = load_with_adapter("question")
model_question.eval()
print(classify(model_question, question_user_content))

# --- LLM_A: the Answer Adapter ---
answer_example = "... We also, in Fabric Care, have done – the team has done a phenomenal job in looking into fast-growing new segments. ... So there continues to be significant runway with superior innovation and superior products. So we continue to drive that, and that's what you see in the results."
Prompts_answer = """As an expert in operations management, I will provide statements from C-suite executives during Q&A sessions of earnings calls. Your task is to analyze these responses and classify the main factors affecting the company's operations management or supply chain performance.

# Guidelines #
Analyze the response to identify the main factors influencing the company's positive performance.
- If the positive performance is primarily attributed to the company's internal operational management activities, such as internal processes, production strategies, resource allocation, inventory management, or decision-making, classify it as "Internal Operations Management". Note that active supply chain relationship management, such as customer relationship management, is included in this category.
- If the positive performance is primarily attributed to the activities or performance of upstream and downstream partners, including suppliers, distributors, retailers or customers, classify it as "Supply Chain Partners". Only actions driven entirely by external companies belong to this category.
- If the positive performance is primarily attributed to external factors beyond the company's control, such as macroeconomic conditions, market changes, government regulations, natural disasters, or geopolitical issues, classify it as "External Factors".
    
# Examples #
Input categorized as "Internal Operations Management": 
1. One and very important factor is our management of the mix. 
2. The Mac results were a combination of us completing the Intel transition. The exceptional customer response to the innovative products.
3. There are aspects of how we work internally in a more efficient and effective way, but there's also looking at the simplification of the brands we have and how we go to market and where we can effectively utilize them the most. 
Input categorized as "Supply Chain Partners": 
1. There is a supply chain that's a challenge right now and is received in full on time. So the materials we get from suppliers are below 50%. 
2. It's due to the cautious approach that our retailers have taken to inventory management. As part of that, they are tending to bring their inventory in closer to the event and they are more cautious in the builds that they make. 
3. Across the entire customer sector, we're seeing a pick-up. It's just an improving glow across our demand side.
Input categorized as "External Factors": 
1. There are always issues out there with the weather. We had weather issues this month already, we had a tornado that tore through Dallas. 
2. The up we're seeing right now is mostly attributed to strength in U.S. federal and strength in -- or increasing rebound in general enterprise.
3. If you look at the absolute growth rates on some of the services, probably the majority of that growth this year would be market recoveries as opposed to taking market share.
        
# Output Format #
Please directly return the result.
"""

answer_user_content = f"{Prompts_answer.strip()}\n\nAnswer: {answer_example.strip()}"

model_answer = load_with_adapter("answer")
model_answer.eval()
print(classify(model_answer, answer_user_content))

License

BibTeX

@article{niu2024internalcredit,
  author  = {Niu, Yimeng and Qiao, Xiao and Wu, Jing and Yang, Xingsheng},
  title   = {Internal Credit and External Blame: Self-Attribution in Operations and Supply Chain Performance},
  journal = {Manufacturing \& Service Operations Management},
  note    = {Forthcoming},
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for OMNLP/OM-Attribution-LLM

Adapter
(2823)
this model