In my view, this is the exact right approach. LLMs aren’t going anywhere, these tools are here to stay. The only question is how they will be developed going forward, and who controls them. Boycotting AI is a really naive idea that’s just a way for people to signal group membership.

Saying I hate AI and I’m not going to use it is really trending and makes people feel like they’re doing something meaningful, but it’s just another version of trying to vote the problem away. It doesn’t work. The real solution is to roll up the sleeves and built an a version of this technology that’s open, transparent, and community driven.

  • HiddenLayer555@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    3 hours ago

    Small models have gotten remarkably good. 1 to 8 billion parameters, tuned for specific tasks — and they run on hardware that organizations already own

    Hard disagree as someone who does host their own AI. Go on Ollama and run some models, you’ll immediately realize that the smaller ones are basically useless. IMO 70B models are barely at the level of being usable for the simplest tasks, and with the current RAM landscape those are no longer accessible to most people unless you already bought the RAM before the Altman deal.

    I suspect this is why he made that deal despite not having an immediate need for that much RAM. To artificially limit the public’s ability to self host their own AI and therefore mitigate the threat open source models present to his business.

    • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
      link
      fedilink
      arrow-up
      9
      ·
      3 hours ago

      They’re absolutely not useless. The trick is to figure out how to use them effectively. For a concrete example, here’s a project I made to implement the idea of using a REPL as a context that I read in a paper recently. The premise there is that even small models are fairly competent at writing individual functions, and dealing with a small context of a few lines. So, instead of feeding large documents into these models which break them, you can instead provide them with an API to interrogate the document by writing code. And sure enough, the idea works. I managed to get qwen2.5-coder:7b, which is a tiny model to reliably search through a large document that it would no hope of figuring out on its own. Here’s what a run of it looks like:

      npx tsx src/index.ts \
        "use javascript to write code to find the total sales amount across all regions?" \
        ./test-fixtures/scattered-data.txt \
        --verbose
      
        Configuration:
        Provider: ollama
        Model: qwen2.5-coder:7b
        Max turns: 10
        Timeout: 30000ms
      
      [RLM] Loaded document: 4,706 characters
      [RLM] Sandbox created (maxSubCalls: 10, timeout: 30000ms)
      
      ──────────────────────────────────────────────────
      [Turn 1/10] Querying LLM...
      [Turn 1] Executing code:
      ```javascript
      // Step 1: Search for data related to sales
      const hits = grep("sales");  // Returns array of {match, line, lineNum}
      console.log(JSON.stringify(hits, null, 2));
      
      // Step 2: Process results - extract sales amounts from each matching line
      let totalSales = 0;
      for (const hit of hits) {
          const saleAmount = parseFloat(hit.line.match(/\d+(\.\d{1,2})?/)[0]);
          if (!isNaN(saleAmount)) {
              totalSales += saleAmount;
          }
      }
      
      // Step 3: Store the result in memory
      memory.push({ key: "total_sales", value: totalSales });
      
      // Final output
      console.log("Total sales across all regions:", totalSales);
      ```
      [Turn 1] Console output:
        [
        ...
        {
          "match": "Sales",
          "line": "- Sales Data: Revenue in USD before taxes",
          "lineNum": 122,
          "index": 4357,
          "groups": []
        }
      ]
      [Turn 1] Error: TypeError: Cannot read properties of null (reading '0')
      
      ──────────────────────────────────────────────────
      [Turn 2/10] Querying LLM...
      [Turn 2] Executing code:
      ```javascript
      // Extract sales data from the logs
      const salesData = [
          { region: "NORTH", amount: 2340000 },
          { region: "SOUTH", amount: 3120000 },
          { region: "EAST", amount: 2890000 },
          { region: "WEST", amount: 2670000 },
          { region: "CENTRAL", amount: 1980000 }
      ];
      
      // Calculate total sales
      const totalSales = salesData.reduce((acc, curr) => acc + curr.amount, 0);
      
      // Output the total sales
      console.log("Total Sales:", totalSales);
      ```
      [Turn 2] Console output:
        Total Sales: 13000000
      
      ──────────────────────────────────────────────────
      [Turn 3/10] Querying LLM...
      [Turn 3] Executing code:
      ```javascript
      // Output the total sales
      console.log("Total Sales:", totalSales);
      ```
      [Turn 3] Console output:
        Total Sales: 13000000
      [Turn 3] Final answer found after code execution
      
      [RLM] Sandbox disposed
      The total sales are 13000000.
      

      so in just 3 calls with very small contexts, it managed to find the answer correctly and it does it reliably.

      I’m playing around with integrating some code synthesis ideas from Barliman right now to make this even more robust. The model ends up only having to give general direction, and learn to ask basic questions, while most of the code can be synthesized at runtime. The way we use models today is really naive, and there’s a lot more possible if you start combining them with other techniques.

      • HiddenLayer555@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        8 minutes ago

        So, instead of feeding large documents into these models which break them, you can instead provide them with an API to interrogate the document by writing code

        Kind of off topic, but this reminded me about something I really don’t like about the current paradigm of “intelligence” and “knowledge” being parts of a single monolithic model.

        Why aren’t we training models on how to search any generic dataset for information, find patterns, draw conclusions, etc, rather than baking the knowledge itself into the model? 8 or so GB of pure abstract reasoning strategies would probably be way more intelligent and efficient than even a much larger model we have now. Imagine if you can just give it an arbitrarily sized database whose content you control, which you can then fill with the highest quality, ethically obtained, human expert moderated data complete with attributions to original creators, and have it base all its decisions from that. It would even be able to cite what it used with identifiers in the database, which can then be manually verified. You get a concrete foundation of where it’s getting its information from, and you only need to load what it currently needs into memory, whereas right now you have to load all the AI’s “knowledge,” relevant or not, into your precious and limited RAM. You would also be able to update the individual data separately from the model itself, and have it produce updated results from the new data. That would actually be what I consider an artificial “intelligence” and not a fancy statistical prediction mechanism.

        • ☆ Yσɠƚԋσʂ ☆@lemmy.mlOP
          link
          fedilink
          arrow-up
          3
          ·
          16 minutes ago

          oh for sure, I think that a small model that’s optimized towards parsing human language and inferring what the user wants coupled with a logic engine could be an extremely powerful tool. Trying to make LLMs do stuff like math or formal reasoning is trying to ram a square peg into a round hole. It doesn’t make any sense to do this because we already have tools that are really good for that sort of stuff. What we don’t have are tools that can easily infer the intent from natural language, and that’s the gap LLMs can fill.

      • Sims@lemmy.ml
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        6 minutes ago

        Thumbs up for using https://www.utcp.io/ ‘Universal Tool Calling Protocol’ instead of only MCP. (Mcp are covered by utcp.)

        I hope other no-bs community standards replaces mcp, a2a, and other big tech pushed standards. A2a can be replaced with xmpp and a few other standard protocols, and we should not allow big corporate psycho’s to take over a development ecosystem again…